&引用\";写入文件时不使用python
我编写了python代码来写入如下文件:&引用\";写入文件时不使用python,python,python-3.x,Python,Python 3.x,我编写了python代码来写入如下文件: with codecs.open("wrtieToThisFile.txt",'w','utf-8') as outputFile: for k,v in list1: outputFile.write(k + "\n") 列表1的类型为(char,int) 这里的问题是,当我执行此操作时,文件没有按预期用“\n”分隔。你知道这里有什么问题吗?我想这是因为 with 感谢您的帮助。提前谢谢
with codecs.open("wrtieToThisFile.txt",'w','utf-8') as outputFile:
for k,v in list1:
outputFile.write(k + "\n")
列表1的类型为(char,int)
这里的问题是,当我执行此操作时,文件没有按预期用“\n”分隔。你知道这里有什么问题吗?我想这是因为
with
感谢您的帮助。提前谢谢。
(我正在将Python 3.4与“用于Visual Studio的Python工具”版本2.2一起使用)如果您在windows上,请尝试“\r\n”。或者使用能够识别unix样式新行的编辑器打开它。从这里找到了它:
我必须在Windows中使用“\r\n”,因为“\r\n”可以工作。如果您在Windows上,
\n
不会终止一行。老实说,我很惊讶您会遇到问题,默认情况下,任何以文本模式打开的文件都会自动将
\n
转换为os.linesep
。我不知道什么是codecs.open()
,但它必须以二进制模式打开文件。在这种情况下,您需要显式添加
os.linesep
:
outputFile.write(k + os.linesep)
显然,您必须在某个地方导入操作系统。每,
编解码器。打开
以二进制模式打开底层文件,而不进行行尾转换。坦率地说,codecs.open
是半不推荐的;在Python2.7及以后的版本中,io.open
(与Python3.x中的内置open
函数相同)处理了99%的人们使用codecs.open
的情况,但更好(更快,而且没有像行尾这样愚蠢的问题)。如果您在Python3上可靠地运行,只需使用普通的open
;如果您也需要在Python 2.7上运行,请导入io
并使用io。打开谢谢,现在就解决了。不太便携,请使用os.linesep
,它将为您所使用的任何系统设置正确的行分隔符。谢谢,但我尝试了它,它只将os.linesep打印到我想要换行的位置。我正在windows中写入文本文件。甚至我也想要一些可移植的东西。我不只是使用编解码器。简单地打开,它是为了满足其他要求,否则不会对我所需的文件进行解码,除非你的文件是在一个伪编解码器(hex
,rot13
等等)中,io.open
应该处理它。它可以读取和写入非ASCII编码的文件;它不是Py2默认的open
,它只读取str
,而不是unicode
。这是在添加双线