我正在编写一个Python文件,该文件需要读取多个不同类型的文件。我通过符合传统阅读在线文件for line in f使用后f = open("file.txt", "r")。
for line in f
f = open("file.txt", "r")
这似乎不适用于所有文件。我的猜测是某些文件以不同的编码结尾(例如\ r \ n与仅\ r)。我可以读取整个文件,并在\ r上进行字符串分割,但这非常昂贵,我宁愿不这样做。有没有一种方法可以使Python的readline方法识别行尾的两种变化?
使用通用换行符支持- 请参阅http://docs.python.org/library/functions.html#open
除了标准的fopen()值模式外,还可以是“ U”或“ rU”。Python通常是通过通用换行符支持构建的。提供“ U”会以文本文件的形式打开文件,但是行可能会被以下任一终止:Unix行尾约定“ \ n”,Macintosh约定“ \ r”或Windows约定“ \” r \ n’。所有这些外部表示在Python程序中都被视为“ \ n”。如果构建的Python没有通用换行符支持,则带有’U’的模式与普通文本模式相同。请注意,如此打开的文件对象还具有一个名为换行符的属性,该属性的值为None(如果尚未看到任何换行符),’\ n’,’\ r’,’\ r \ n’或包含所有内容的元组看到的换行符类型。