此问题已在此处有答案:
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)
4条答案
按热度按时间p4tfgftt1#
如果你在windows上,
\n
不会终止一行。老实说,我很惊讶你有一个问题,默认情况下,任何文件打开文本模式会自动转换
\n
到os.linesep
。我不知道codecs.open()
是什么,但它必须以二进制模式打开文件。在这种情况下,你需要显式地添加
os.linesep
:显然,你必须在某个地方
import os
。rdlzhqv92#
从这里我就知道了:
How would I specify a new line in Python?
我不得不像在Windows中那样使用“\r\n”,“\r\n”将起作用。
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
。esbemjvw4#
如果您使用的是Windows,请尝试“\r\n”。或者用能识别unix样式新行的编辑器打开它。