Python 在写入文件时修改换行符

标签 python file newline

<分区>

我正在开发一个跨平台的 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 换行符?

最佳答案

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

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

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

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

关于Python 在写入文件时修改换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984805/

相关文章:

python - 使用 eyeD3 从 Python 中的 mp3 文件中检索歌词

python - 如何限制 python 版本的 Google App Engine 中特定方法的允许执行时间?

unix - 删除额外的换行符

c# - 使用 Filehelpers 处理 DelimitedRecord 中的换行符

UNIX:用冒号替换换行符,在 EOF 之前保留换行符

php - 命名实体识别算法

python - 无论设置为 True,settings.DEBUG 仍然为 false

python - 将数据附加到 json 文件中的列表

python - 如何获取一个文件中包含另一个文件中的字符串(重复)的行?

c - 确定 EOF 的优雅方法?