python-3.x 如何在写入文件时使用“\n”[重复]

cwdobuhd  于 2023-06-25  发布在  Python
关注(0)|答案(4)|浏览(126)

此问题已在此处有答案

How do I specify new lines in a string in order to write multiple lines to a file?(16个回答)
4天前关闭。
我写了Python代码来写一个像这样的文件:

with codecs.open("wrtieToThisFile.txt",'w','utf-8') as outputFile:
            for k,v in list1:
                outputFile.write(k + "\n")

list1的类型是(char,int)。这里的问题是,当我执行这个命令时,file没有像预期的那样被“\n”分隔。你知道这里有什么问题吗?我想是因为

with

任何帮助都很感激。先谢谢你了。(我使用Python 3.4和“Python Tools for Visual Studio”版本2.2)

p4tfgftt

p4tfgftt1#

如果你在windows上,\n不会终止一行。
老实说,我很惊讶你有一个问题,默认情况下,任何文件打开文本模式会自动转换\nos.linesep。我不知道codecs.open()是什么,但它必须以二进制模式打开文件。
在这种情况下,你需要显式地添加os.linesep

outputFile.write(k + os.linesep)

显然,你必须在某个地方import os

rdlzhqv9

rdlzhqv92#

从这里我就知道了:
How would I specify a new line in Python?
我不得不像在Windows中那样使用“\r\n”,“\r\n”将起作用。

eoigrqb6

eoigrqb63#

根据codecs.open的文档,codecs.open以二进制模式打开底层文件,而不进行行尾转换。坦率地说,codecs.open是半弃用的;在Python 2.7及以后版本中,io.open(与Python 3.x中的内置open函数相同)处理了人们过去使用codecs.open的99%的情况,但更好(更快,并且没有像行尾这样的愚蠢问题)。如果你可靠地运行在Python 3上,只需要使用普通的open;如果您也需要在Python 2.7上运行,请导入io并使用io.open

esbemjvw

esbemjvw4#

如果您使用的是Windows,请尝试“\r\n”。或者用能识别unix样式新行的编辑器打开它。

相关问题