[英]Python: How to write literal \n and \r characters to a csv file with DictWriter?
[英]Why \r\n output become \r\r\n using python write to file
当我尝试运行以下代码时。
string = ['A', 'B', '\r', '\n', 'C', 'D']
print(''.join(string))
import io
with io.open(r"test.txt", "w", encoding="utf-8-sig", newline='\r\n') as f:
f.write(''.join(string)+"\r\n")
到终端的 output 是
AB
CD
但是把output转成txt文件(用notepad++查看),变成了\r\r\n
scr shot
我该如何解决? (我不想更改输入string
。我想将其保留为\r\n
)
我试图改变换行符,编码。 并在谷歌上搜索,但没有运气。
阅读有关newline
参数的open
文档,它说:
将 output 写入 stream 时,如果换行符为
None
,则写入的任何'\n'
字符都将转换为系统默认行分隔符os.linesep
。 如果换行符是''
或'\n'
,则不会进行任何翻译。 如果换行符是任何其他合法值,则写入的任何'\n'
字符都将转换为给定的字符串。
[强调我的]
通过使用newline='\r\n'
您已明确告诉系统将任何单个换行符'\n'
转换为回车符和换行符对'\r\n'
。 如果你还写了一个明确的回车,那么你将写两个回车(一个来自你写的数据,一个来自换行翻译)。
更改为newline=''
或newline='\n'
以不进行任何翻译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.