我在ubuntu下编写python3.4脚本,其中我引入了一个参数a文件(编码为UTF-8),该文件是在Windows下生成的,我必须逐行(以\r\n
分隔)查看该文件,因为我知道“行”中包含一些我想要保留的'\n'
。
我的问题是Python在打开文件时将文件的"\r\n"
转换为"\n"
,我尝试过用不同的模式打开("r"
,"rt"
,"rU"
)。
我找到的唯一解决方案是在二进制模式而不是文本模式下工作,以"rb"
模式打开。
有没有一种方法可以做到这一点,而不工作在二进制模式或一个适当的方式来做到这一点?
2条答案
按热度按时间7jmck4yq1#
Martijn Pieters的解为:
此答案是由CC BY-SA 3.0下的OP lu1her以edit的形式发布的问题“禁用python中从\r\n到\n的自动更改”的答案。
vuktfyat2#
将
newline
关键字参数设置为open()
到'\r\n'
,或者设置为空字符串:这告诉Python只在
\r\n
行终止符上拆分行;\n
在输出中保持不变。如果将其设置为''
,则\n
也被视为行终止符,但\r\n
不会转换为\n
。从
open()
函数文档中:None
、''
、'\n'
、'\r'
和'\r\n'
。[...] 如果它是''
,则启用通用换行符模式,但行结束符以未翻译的形式返回给调用方。如果它具有任何其他法律的值,输入行仅以给定字符串结束,并且行结尾未翻译地返回给调用者。我大胆强调。