我正在python3.4脚本下的ubuntu下工作,在该脚本中,我使用Windows下生成的文件(编码为UTF-8)作为参数。我必须逐行检查文件(由\r\n
分隔),因为知道“行”包含一些我想保留的'\n'
。
我的问题是,Python在打开时会将文件的"\r\n"
转换为"\n"
。我试图用不同的模式("r"
,"rt"
,"rU"
)打开。
我发现的唯一解决方案是在二进制模式下而不是文本模式下工作,并以"rb"
模式打开。
有没有在二进制模式下无法工作的方法,还是有适当的方法呢?
编辑:解决方案:
with open(filename, "r", newline='\r\n') as f:
最佳答案
将newline
关键字参数设置为open()
到'\r\n'
,或者可能设置为空字符串:
with open(filename, 'r', encoding='utf-8', newline='\r\n') as f:
这告诉Python仅在
\r\n
行终止符上分割行; \n
在输出中保持不变。如果将其设置为''
,则\n
也会被视为行终止符,但\r\n
不会转换为\n
。从
open()
function documentation:大胆强调我的。
关于python - 在python中禁用从\r\n到\n的自动更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36891795/