python如何替换或拆分字符串列表中的行\r
我在python如何替换或拆分字符串列表中的行\r,python,paramiko,Python,Paramiko,我在paramikossh会话中有几行类似于下面的输出。我首先根据\n进行拆分,并将每行存储在一个列表中。因此,整个ssh会话作为一个完整的字符串出现,因此我基于\n进行拆分。但是这里有\r,请参见下文。如果我在\r上再次尝试拆分,它将失败,因为我已经有一个列表 |\r/\r-\r\\r\\\r|\r/\r[2K\r00:31:43 - Executing system_health v107 如果我将文本粘贴到notepad++中,\r看起来像是返回或新行 '| / - \\ |
paramiko
ssh会话中有几行类似于下面的输出。我首先根据\n
进行拆分,并将每行存储在一个列表中。因此,整个ssh会话作为一个完整的字符串出现,因此我基于\n
进行拆分。但是这里有\r
,请参见下文。如果我在\r
上再次尝试拆分,它将失败,因为我已经有一个列表
|\r/\r-\r\\r\\\r|\r/\r[2K\r00:31:43 - Executing system_health v107
如果我将文本粘贴到notepad++中,\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
并将每一行作为列表中的一行。然后,我可以删除我不需要的字符串。如果您有一个字符串列表,您所要做的就是在列表上迭代,处理每个字符串。在这种情况下,您似乎需要另一个结果列表。考虑到您提供的最少数据
>>> 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']
在a:循环中的for i中,在将数据附加到新列表(b)之前,您可以根据需要执行任意多个步骤来操作数据
注意:我假设每个字符串在时间戳之前都是[2K\r
,情况可能不一定如此,但主体保持不变。您可以使用[line.strip()表示行中的行]
或仅从\r\n
开始拆分。您能否给出实际的起始字符串,也就是\n
所在的位置?我认为如果您希望仅基于所有空格进行拆分,可以使用.split()
,不带任何参数。或者您可以尝试.split('\r\n'))
@AnandSKumar您的建议会在所有空格上拆分吗?这可能不是我们想要的行为。@code学徒是的,会的。我们可以尝试在\r\n
以及COLDSPEED Suggered上拆分。@AnandSKumar这似乎更合适,但在OP显示“原始字符串”示例之前,我们无法确定在任何拆分之前。谢谢,我想我只是太累了,想得太多了。谢谢你的智慧之言,是的,只需拆分\n,拆分\r,然后从拆分列表中删除每行\r,我可以排除某些我不需要的行。