我正在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/

10-13 07:29