我有一个csv文件,其中包含两个不同的换行符终结符(\n
和\r\n
)。我希望我的Python脚本使用\r\n
作为换行符终结符而不是\n
。但问题是,当我使用\n
打开文件时,Python的通用换行功能会将所有内容规范化为open()
。
奇怪的是,当我编写这个脚本时,它从未用于规范化我的新行,这就是为什么我使用Python 2.7并且它运行良好。但是今天突然间它开始规范化所有内容,我的脚本不再按需运行。
如何在使用open()
打开文件时禁用通用换行符(无需在二进制模式下打开)?
答案 0 :(得分:4)
您需要以二进制模式打开文件,如模块文档中所述:
with open(csvfilename, 'rb') as fileobj:
reader = csv.reader(fileobj)
如果 csvfile 是一个文件对象,则必须在平台上使用“b”标志打开它,这会产生影响。
在二进制模式下,不会进行行分隔符转换。