当用于插入'\n'时,Python for Windows是否会插入'\ r \n'?

Kir*_*irt 3 python pc line-breaks python-2.x

我在家里使用PC,在工作时使用Mac.我从来没有遇到任何关于python脚本或它们的输出中的换行问题,但每当我向我的老板发送一些东西时,我会收到一封愤怒的电子邮件,其中包含关于Windows换行符的信息.

最新的是python脚本的输出,我告诉它用'\n'结束每一行,但仔细观察(在我工作的Mac上)似乎每一行确实以'\ r \n结尾\ N".

发生了什么,我该如何阻止它?我曾经在家里的Linux虚拟机中运行我的所有脚本,但是我发现它太慢而且非常繁琐,肯定有一个更简单的修复?

Tho*_*low 9

这是因为您在文本模式下打开了文件,而Python正在按照您正在使用的平台(Windows使用\r\n和Linux刚刚使用\n)对新行进行规范化.您需要以二进制模式打开文件,如下所示:

f = open("myfile.txt","wb")
Run Code Online (Sandbox Code Playgroud)

除非您还指定了二进制模式,否则当您读入文件时(除非\r\n被替换\n),它会反向执行相同的操作:

f = open("myfile.txt", "rb")
Run Code Online (Sandbox Code Playgroud)

  • 是的,文本和二进制模式之间的唯一区别是文本模式规范化您的换行. (2认同)