python 如何在 \r 上替换或拆分字符串列表中的行
python how to replace or split on \r for lines from string list
我在 paramiko
ssh 会话中有几行类似于下面的输出。我首先根据 \n
进行拆分,并将每一行存储在一个列表中。所以整个 ssh 会话作为一个完整的字符串出现,因此我根据 \n
进行拆分。但是这里有 \r
,见下文。如果我尝试在 \r
上再次拆分,它会失败,因为我已经有了一个列表。
|\r/\r-\r\r\\r|\r/\r[2K\r00:31:43 - Executing system_health v107
如果我将文本粘贴到记事本++中,\r
看起来像 returns 或换行。
'|
/
-
\
|
/
[2K
00:31:43 - Executing system_health v107'
我怎样才能让在 Python 中读取的每一行都与这一行相似
|\r/\r-\r\r\\r|\r/\r[2K\r00:31:43 - Executing system_health v107
并进一步 split/slice 到另一个列表中的行?或其他一些方法。最终目标是删除 \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']
在 for i in a:
循环中,您可以根据需要采取尽可能多的步骤来操作数据,然后再将其附加到新列表 (b)
注意:我假设每个字符串在时间戳之前都是 [2K\r
,这可能不一定是这种情况,但主体保持不变。
我在 paramiko
ssh 会话中有几行类似于下面的输出。我首先根据 \n
进行拆分,并将每一行存储在一个列表中。所以整个 ssh 会话作为一个完整的字符串出现,因此我根据 \n
进行拆分。但是这里有 \r
,见下文。如果我尝试在 \r
上再次拆分,它会失败,因为我已经有了一个列表。
|\r/\r-\r\r\\r|\r/\r[2K\r00:31:43 - Executing system_health v107
如果我将文本粘贴到记事本++中,\r
看起来像 returns 或换行。
'|
/
-
\
|
/
[2K
00:31:43 - Executing system_health v107'
我怎样才能让在 Python 中读取的每一行都与这一行相似
|\r/\r-\r\r\\r|\r/\r[2K\r00:31:43 - Executing system_health v107
并进一步 split/slice 到另一个列表中的行?或其他一些方法。最终目标是删除 \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']
在 for i in a:
循环中,您可以根据需要采取尽可能多的步骤来操作数据,然后再将其附加到新列表 (b)
注意:我假设每个字符串在时间戳之前都是 [2K\r
,这可能不一定是这种情况,但主体保持不变。