使Python的readline方法识别两种行尾变化?

soc*_*rve 12 python

我正在编写一个Python文件,需要读入几个不同类型的文件.我正在for line in f使用后逐行阅读文件f = open("file.txt", "r").

这似乎并不适用于所有文件.我的猜测是一些文件以不同的编码结束(例如\ r \n与仅\ r \n).我可以读取整个文件并在\ r \n上执行字符串拆分,但这是非常昂贵的,我宁愿不会.有没有办法让Python的readline方法识别出两种行尾变化?

bgp*_*ter 18

使用通用换行支持 - 请参阅http://docs.python.org/library/functions.html#open

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