提问者:小点点

修复在python中写入UTF-8到文本文件时的换行符


我对此一无所知。我需要将一些汉字写入文本文件。以下方法有效,但换行符被剥离,因此生成的文件只是一个超长字符串。

我尝试插入我所知道的每个已知的unicode换行符,但一无所知。非常感谢任何帮助。这是片段:

import codecs   
file_object = codecs.open( 'textfile.txt', "w", "utf-8" )
xmlRaw = (data to be written to text file )    
newxml = xmlRaw.split('\n')
for n in newxml:
    file_object.write(n+(u'2424'))# where \u2424 is unicode line break    

共3个答案

匿名用户

如果您使用python 2,则使用u"\n"附加换行符,并在将其写入文件时将内部unicode格式编码为utf:file_object. write((n u"\n").encode("utf"))确保n在循环中的类型为unicode

匿名用户

我遇到了同样的问题,效果也一样(智慧结束了)。对我来说,这不是编码问题,而是需要用'\r\n'替换每个'\n',这导致更好地理解换行符和回车符之间的区别,以及Windows编辑器经常需要\r\n换行符的事实:12747722

匿名用户

最简单的方法是使用marc_a所说的“\r\n”的组合。

因此,您的代码应该如下所示:

import codecs   
file_object = codecs.open( 'textfile.txt', "w", "utf-8" )
xmlRaw = (data to be written to text file )    
newxml = xmlRaw.split('\n')
for n in newxml:
    file_object.write(n+u"\r\n")