我编写了python代码来写入这样的文件:
with codecs.open("wrtieToThisFile.txt",'w','utf-8') as outputFile:
for k,v in list1:
outputFile.write(k + "\n")
list1的类型为(char,int) 这里的问题是,当我执行此操作时,文件不会按预期分隔“\ n”。知道这里有什么问题吗?我认为这是因为
with
感谢任何帮助。提前致谢。 (我使用Python 3.4和“Visual Studio for Visual Studio”2.2版本)
答案 0 :(得分:5)
如果您在Windows上,\n
不会终止一行
老实说,我很惊讶您遇到问题,默认情况下,在文本模式下打开的任何文件都会自动将\n
转换为os.linesep
。我不知道codecs.open()
是什么,但它必须以二进制模式打开文件
鉴于这种情况,您需要明确添加os.linesep
:
outputFile.write(k + os.linesep)
显然你必须在某处import os
。
答案 1 :(得分:3)
答案 2 :(得分:3)
每codecs.open
's documentation,codecs.open
以二进制模式打开基础文件,不进行行结束转换。坦率地说,codecs.open
已被半推荐;在Python 2.7及更高版本中,io.open
(与Python 3.x中的内置open
函数相同)处理人们过去使用codecs.open
的99%的情况,但更好(更快,没有像行结尾这样的愚蠢问题)。如果你在Python 3上可靠地运行,只需使用plain open
;如果您还需要在Python 2.7上运行,请导入io
并使用io.open
。
答案 3 :(得分:0)
如果您在Windows上,请尝试'\ r \ n'。或者使用能够识别unix样式新行的编辑器打开它。