python解析字符串\r\n新行

python解析字符串\r\n新行,python,parsing,eval,Python,Parsing,Eval,我在分析行时遇到一些问题。 实际上,我把所有的东西都放在一行中,就像这样: '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 add

我在分析行时遇到一些问题。 实际上,我把所有的东西都放在一行中,就像这样:

'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
我想有这样一行:

'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)

但我有一个错误。是否有其他简单的方法解决此问题?

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

如果这是从文件中读取的,请在打开文件时尝试设置行尾。 或者使用
myfile=open(文件名'r',换行符='\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
输出:

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

你试过了吗?只是一个想法。
a.split('\r\n')
@jornsharpe为什么?这似乎有效:-p@TimCastelijns见例。我会在你方便的时候带上我的可口可乐@我不知道那场比赛,我以为你是说我的建议会带来厄运;-)请注意,
文件
是一个内置函数,尽管它在Python 2.x中已被弃用(并在Python 3中被删除),而在
打开
之前,它可能是一个远程文件,如果
文件
打算稍后用作内置函数,那么用fileobj对其进行阴影处理可能会混淆问题。@JonClements感谢我更改了答案。