繁体   English   中英

为什么拆分和拆分行不适用于换行符?

[英]Why split and splitlines not working for newline?

我有一个变量,其中的IP地址用换行符分隔-

>>> print(db_ip_addresses)
10.160.6.133\n10.160.7.164\n10.160.4.116\n10.160.5.173\n10.160.5.176\n10.160.6.162\n10.160.6.39\n10.160.4.6\n

我想从中创建一个数组。 根据我的调查,我应该能够在其上使用split(“ \\ n”)或splitlines()。 当我尝试这些方法时,我得到以下信息-

>>> db_ip_addresses.split("\n")
['10.160.6.133\\n10.160.7.164\\n10.160.4.116\\n10.160.5.173\\n10.160.5.176\\n10.160.6.162\\n10.160.6.39\\n10.160.4.6\\n']

>>> db_ip_addresses.splitlines()
['10.160.6.133\\n10.160.7.164\\n10.160.4.116\\n10.160.5.173\\n10.160.5.176\\n10.160.6.162\\n10.160.6.39\\n10.160.4.6\\n']

这就是我要的 -

['10.160.6.133','10.160.7.164','10.160.4.116','10.160.5.173','10.160.5.176','10.160.6.162','10.160.6.39','10.160.4.6']

我该如何解决这个问题?

它不包含换行符。 它包含反斜杠n。 如果它包含换行符,那么当您打印它时,它不会全部位于同一行。

如果要在反斜杠n上分割,可以使用:

db_ip_addresses.split("\\n")

如果您有列表,则需要执行以下操作:

db_ip_addresses = ['10.160.6.133\\n10.160.7.164\\n10.160.4.116\\n10.160.5.173\\n10.160.5.176\\n10.160.6.162\\n10.160.6.39\\n10.160.4.6\\n']

l1 = [elmt.split("\\n") for elmt in db_ip_addresses ]

#remove last element
l1 = l1[-1]

输出:

['10.160.6.133',
 '10.160.7.164',
 '10.160.4.116',
 '10.160.5.173',
 '10.160.5.176',
 '10.160.6.162',
 '10.160.6.39',
 '10.160.4.6']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM