python分析字符串\r\n new lin

2024-09-25 00:33:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在分析行时遇到了一些问题。 实际上我把所有的东西都排成一行:

'test:[abc:123];something\r\nName=some name;phone no.: [123456]\r\nAddress: some address; another   address\r\n\r\n'

我想要这样的行:

test:[abc:123];something
Name=some name;phone no.: [123456]
Address: some address; another address

我试过了

#from ast import literal_eval
from ast import *
a = 'test:[abc:123];something\r\nName=some name;phone no.: [123456]\r\nAddress: some address; another address\r\n\r\n'
msg = literal_eval(a)
# and
msg = eval(a)

但我错了。有其他简单的方法解决这个问题吗?


Tags: nonamefromtestimportaddressevalanother
3条回答

如果这是您生成的字符串,请尝试.splitlines().split('\r\n')?

如果这是从文件中读取的,请在打开文件时尝试设置行尾。 或者用myfile = open(filename, 'r', newline='\n\r')打开文件

拆分工作正常:

    l = 'test:[abc:123];something\r\nName=some name;phone no.: [123456]\r\nAddress: some address; another   address\r\n\r\n'.split("\r\n")
    In [14]: for line in l:
   ....:         print line
   ....:     
    test:[abc:123];something
    Name=some name;phone no.: [123456]
    Address: some address; another   address
kk = 'test:[abc:123];something\r\nName=some name;phone no.: [123456]\r\nAddress: some address; another address\r\n\r\n'
lk = "\n".join(kk.split("\r\n"))
print lk 

输出:

test:[abc:123];something
Name=some name;phone no.: [123456]
Address: some address; another   address

相关问题 更多 >