使用回车迭代文件

hat*_*rix 11 python

有没有办法使用语法迭代文本文件,

with open(filename,'r') as f:
  for line in f:
    print f
Run Code Online (Sandbox Code Playgroud)

如果文件只包含回车符而没有换行符?

到目前为止,我所能做的就是

with open(filename,'r') as f:
  for line in f.read().split('\r'):
    print f
Run Code Online (Sandbox Code Playgroud)

但文件有时很大.我不想使用dos2unix修改文件,因为另一个软件程序需要原始格式.

Dan*_*olo 16

您可以使用Python的通用换行支持open()

除了标准的fopen()值模式可能是'U''rU'.Python通常使用通用换行支持构建; supply 'U'将文件作为文本文件打开,但行可以通过以下任何一种方式终止:Unix行尾约定'\n',Macintosh约定'\r'或Windows约定'\r\n'.所有这些外部表示都被'\n'Python程序看作.如果Python是在没有通用换行符支持的情况下构建的,'U'则模式与普通文本模式相同.需要注意的是文件对象,因此也开有一个属性,叫做换行符具有的价值None(如果没有换行目前尚未看到)'\n','\r','\r\n',或包含所有看到的换行符类型的元组.

  • 太棒了 - 我只需要`open(filename,'rU')` (4认同)