对于Windows环境中的python
我有一个日志文件,使用[CR] [LF]作为行指示的结尾。
但是python只会将[LF]字符(\ x0A)读为'\ n' 某种程度上忽略了[CR]或'\ x0d'。由于这个原因,读取字符串的Len()减少了1。
我可以告诉python在某处使用通用/本地设置以避免这样做吗?
答案 0 :(得分:3)
在Python 2中,open
处于二进制模式的文件以避免行结束转换:
with open(filename, 'rb') as f:
在Python 3中,二进制模式不仅仅禁用行结束翻译(它还意味着阅读bytes
而不是str
),因此您使用the newline
keyword argument来禁用行结束翻译(通过传递空字符串):
with open(filename, newline='') as f: