You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python写入文件时\r\n变为\r\r\n的问题及解决请求

问题原因

你遇到的问题是因为文本模式下Python会自动处理换行符转换:当用io.open以文本模式(w)打开文件并指定newline='\r\n'时,Python会把所有写入的\n替换成\r\n。你的输入字符串string里已经包含\r\n,其中的\n会被替换成\r\n,最终变成\r+\r\n即\r\r\n;后面追加的"\r\n"里的\n也会被同样替换,导致文件中出现多余的\r。

解决方案

改用二进制模式写入文件,这样Python不会对换行符做任何自动转换,直接保留原始的换行符格式。同时手动将字符串编码为utf-8-sig(和你原来指定的编码一致):

string = ['A', 'B', '\r', '\n', 'C', 'D']
print(''.join(string))
import io
with io.open(r"test.txt", "wb") as f:
    content = ''.join(string) + "\r\n"
    f.write(content.encode('utf-8-sig'))
验证效果

用Notepad++打开生成的test.txt,换行符会保持为\r\n,同时不会修改原始的string内容。

内容的提问来源于stack exchange,提问作者dtlnor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:35:20