有没有办法使用语法
迭代文本文件with open(filename,'r') as f:
for line in f:
print f
如果文件只包含回车符而没有换行符?
到目前为止,我所能做的只是
with open(filename,'r') as f:
for line in f.read().split('\r'):
print f
但文件有时很大。我不想使用dos2unix修改文件,因为另一个软件程序需要原始格式。
答案 0 :(得分:15)
您可以使用Python的universal newline support for open()
除了标准的fopen()值模式可能是
'U'
或'rU'
。 Python通常使用通用换行支持构建;提供'U'
将文件作为文本文件打开,但行可以通过以下任何一种方式终止:Unix行尾约定'\n'
,Macintosh约定'\r'
或者Windows约定'\r\n'
。所有这些外部表示都被Python程序视为'\n'
。如果在没有通用换行符支持的情况下构建Python,则'U'
的模式与普通文本模式相同。请注意,如此打开的文件对象也有一个名为newlines的属性,其值为None
(如果尚未看到换行符),'\n'
,'\r'
,'\r\n'
,或包含所有换行类型的元组。
答案 1 :(得分:0)
您可以使用open(filename, 'rU')
。