2017-08-05 42 views
-1

我有几行输出类似于下面从paramiko ssh会话以下内容。我首先根据\n进行拆分,并将每行存储在一个列表中。所以整个ssh会话都是以完整字符串形式出现的,因此我根据\n进行了拆分。然而在这里有\r,见下文。如果我尝试在\r上再次分割,则失败,因为我已经有一个列表。python如何替换或拆分 r从字符串列表

|\r/\r-\r\\r\\\r|\r/\r[2K\r00:31:43 - Executing system_health v107 

,如果我将文本粘贴到记事本++的\r样子返回或新的生产线。

'| 

/

- 

\\ 

| 

/

[2K 

00:31:43 - Executing system_health v107' 

我如何可以采取每次在Python阅读类似于此行

|\r/\r-\r\\r\\\r|\r/\r[2K\r00:31:43 - Executing system_health v107 

,并有进一步分裂/片到另一个列表行的行?或其他方法。最终目标是删除\n\r,并将每行作为列表中的一行。我可以删除那些我不需要的东西。

+0

您可以使用'[line.strip()for line in lines]'或者直接在'\ r \ n'上分割开始。 –

+1

你可以给实际的起始字符串,你也有'\ n'吗?我想如果你想基于所有的空格来分割,你可以使用'.split()',而不需要任何参数。或者你可以尝试'.split('\ r \ n')'。 –

+0

@AnandSKumar将你的建议分为*全部*空格?这可能不是理想的行为。 –

回答

1

如果你有一个字符串列表,你所要做的就是迭代列表,处理每个字符串。在这种情况下,你似乎想要另一个结果列表。鉴于你提供的最小数据。

>>> a=["|\r/\r-\r\\r\\\r|\r/\r[2K\r00:31:43 - Executing system_health v107","|\r/\r-\r\\r\\\r|\r/\r[2K\r00:31:44 - Executing system_health v108"] 
>>> b=[] 
>>> for i in a: 
...  x = i.split('[2K\r') 
...  b.append(x[-1]) 
... 
>>> b 
['00:31:43 - Executing system_health v107', '00:31:44 - Executing system_health v108'] 

for i in a:循环您可以采取根据需要操纵数据的许多步骤,其附加到新的列表(b)之前 注:我假设每个字符串作为[2K\r时间戳之前,这可能不一定是这样,但委托人仍然是一样的。

+0

谢谢,我想我只是累了,想到了整个事情。感谢你的智慧的话,是的,只是分裂\ n,分割\ r,然后从\分裂列表\ r每行我能够排除我不需要的某些行。 –