“\ n”在写入文件时无法在python中工作

时间:2015-09-18 23:54:35

标签: python python-3.x

我编写了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版本)

4 个答案:

答案 0 :(得分:5)

如果您在Windows上,\n不会终止一行 老实说,我很惊讶您遇到问题,默认情况下,在文本模式下打开的任何文件都会自动将\n转换为os.linesep。我不知道codecs.open()是什么,但它必须以二进制模式打开文件 鉴于这种情况,您需要明确添加os.linesep

outputFile.write(k + os.linesep)

显然你必须在某处import os

答案 1 :(得分:3)

从这里想出来:

How would I specify a new line in Python?

我必须在Windows中使用“\ r \ n”,“\ r \ n”将起作用。

答案 2 :(得分:3)

codecs.open's documentationcodecs.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样式新行的编辑器打开它。