【问题标题】:Python modifies newlines when writing a file [duplicate]Python在写入文件时修改换行符[重复]
【发布时间】:2014-03-25 22:35:13
【问题描述】:

我正在开发一个跨平台的 Python 应用程序,我的开发环境是 Windows。由于与以前版本的兼容性问题,我必须使用 Linux 风格的行尾。

为什么是这段代码:

lines = ['hello world','bye']
with open('file.txt','w') as f:
    f.write('\n'.join(lines))

导致 CRLF 换行?

我的 Python 文件是 utf-8 编码的,但我认为这不是问题所在。

有没有办法强制 Python 使用我在字符串中指定的\n 换行符?

【问题讨论】:

  • 确实……我没找到这个。

标签: python file newline


【解决方案1】:

在文本模式下打开文件时,行分隔符被标准化为平台默认值。在 Windows 上,即\r\n。如果您不希望发生这种情况,请以二进制模式打开文件:

with open('file.txt', 'wb') as f:

在 Python 3 上,您还可以将 newline 关键字设置为 '' 以禁用换行符重写:

with open('file.txt', 'w', newline='') as f:

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    相关资源
    最近更新 更多