6

我在这件事上束手无策。我需要将一些中文字符写入文本文件。以下方法有效,但是换行符被剥离,因此生成的文件只是一个超长字符串。

我尝试插入我所知道的每个已知的 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    
4

3 回答 3

4

If you use python 2, then use u"\n" to append newline, and encode internal unicode format to utf when you write it to file: file_object.write((n+u"\n").encode("utf")) Ensure n is of type unicode inside your loop.

于 2013-08-09T22:58:12.863 回答
0

我有同样的问题同样的效果(智慧结束了)。就我而言,这不是编码问题,而是需要将每个 '\n' 替换为 '\r\n',这有助于更好地理解换行符和回车符之间的区别,以及 Windows 编辑器的事实通常需要 \r\n 换行:12747722

于 2018-12-23T09:48:34.857 回答
0

最简单的方法是使用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")
于 2019-03-10T19:13:47.607 回答