如何在使用open()

时间:2015-08-28 20:11:29

标签: python python-2.7 newline

我有一个csv文件,其中包含两个不同的换行符终结符(\n\r\n)。我希望我的Python脚本使用\r\n作为换行符终结符而不是\n。但问题是,当我使用\n打开文件时,Python的通用换行功能会将所有内容规范化为open()

奇怪的是,当我编写这个脚本时,它从未用于规范化我的新行,这就是为什么我使用Python 2.7并且它运行良好。但是今天突然间它开始规范化所有内容,我的脚本不再按需运行。

如何在使用open()打开文件时禁用通用换行符(无需在二进制模式下打开)?

1 个答案:

答案 0 :(得分:4)

您需要以二进制模式打开文件,如模块文档中所述:

with open(csvfilename, 'rb') as fileobj:
    reader = csv.reader(fileobj)

来自csv.reader() documentation

  

如果 csvfile 是一个文件对象,则必须在平台上使用“b”标志打开它,这会产生影响。

在二进制模式下,不会进行行分隔符转换。