使用回车迭代文件

时间:2011-03-02 22:19:49

标签: python

有没有办法使用语法

迭代文本文件
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修改文件,因为另一个软件程序需要原始格式。

2 个答案:

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