由分隔符确定的Python读取文件\r\n
我只想读取由换行符分隔符\r\n确定的文件,\r\n并且\r\n应该被视为字符串的一部分,而不是行尾 我试着用由分隔符确定的Python读取文件\r\n,python,file,newline,Python,File,Newline,我只想读取由换行符分隔符\r\n确定的文件,\r\n并且\r\n应该被视为字符串的一部分,而不是行尾 我试着用 open('file.txt', 'rU').read().split('\r\n') 但打开文件后,我看不到任何字符,\r所以可能必须使用不同的标志或不同的方式打开文件 有什么办法解决这个问题吗 编辑:很抱歉没有指定python的版本,我使用的是版本3。用“rb”打开文件: open('file.txt','rb').read().split('\r\n') 我发现创建一个只有CR
open('file.txt', 'rU').read().split('\r\n')
但打开文件后,我看不到任何字符,\r所以可能必须使用不同的标志或不同的方式打开文件
有什么办法解决这个问题吗
编辑:很抱歉没有指定python的版本,我使用的是版本3。用“rb”打开文件:
open('file.txt','rb').read().split('\r\n')
我发现创建一个只有CR和LF的文本文件有点困难,但Notepad++帮助了我
关于这一内容:
CRLF\r\nCR\rLF\nCRLF\r\n
使用打印打开('file.txt','rb').read().split('\r\n')
我得到了这个输出:
['CRLF'、'CR\rLF\nCRLF'、''']
我认为\r\n在以文本模式读取文件时被转换为\n
我不是100%确定你想要实现什么,但在我看来,你想要做到:
with open("file.txt", "rU") as f:
return f.readline()
这将读取一行(包括\n)。如果要将行作为列表,请执行以下操作:
with open("file.txt", "rU") as f:
return f.readlines()
或者您可以只在f上迭代。(使用二进制模式)在Python2中工作得很好,但在Python3中需要进行调整,因为以二进制方式打开文件会将其内容返回为字节,而不再是str
此外,如果文件很大,那么一次读取整个文件可能是内存方面的问题
在Python3中,可以将换行符
参数传递给打开
,这样它就可以在该参数上而不是默认值上拆分
with open("temp.txt","r",newline="\r\n") as f:
for line in f:
....
line
包含文本以及结尾的\r\n
(使用line=line.rstrip()
删除)
如果行中有\n
字符(不在\r
后面),它们将作为普通字符读取。好吧,这不是二进制类型的文件,所以当我尝试这样做时,我有一个错误:TypeError:需要一个类似字节的对象,而不是'str',我使用的是Python 2.7-您没有指定Python 3。它可以工作,但您必须使用。read().decode().split…
例如。我有这样的文件:第一行\r\n第二行\r\n第三行\r\n作为拆分文件的结果,我应该有这样的输出:1。String=“第一行第二行”2。String=“Third line”谢谢,这也很有效,但我认为我标记的解决方案更好(代码更少:))无论您选择什么(加上您解决了它,这要感谢我对解码的评论,这甚至不在答案中)。此外,尝试用另一个解决方案打开一个30Gb的文件,并在开始时执行完整的读取+拆分:)无论如何,有趣的问题:)