python如何在\ r \ n中替换或拆分字符串列表中的行

时间:2017-08-05 04:54:03

标签: python paramiko

我在paramiko ssh会话中有几行类似于以下内容的输出。我首先根据\n进行拆分并将每行存储在列表中。所以整个ssh会话都是一个完整的字符串,因此我根据\n分割。但是这里有\r,见下文。如果我尝试再次在\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,并将每行作为列表中的一行。然后我可以删除我不需要的那些。

1 个答案:

答案 0 :(得分: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,可能不一定是这种情况,但主体保持不变。