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

时间:2013-08-09 22:43:20

标签: python character-encoding

我在这个问题上的智慧结束了。我需要在文本文件中写一些中文字符。以下方法有效,但新行被剥离,因此生成的文件只是一个超长字符串。

我尝试插入我知道的所有已知的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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我遇到了同样的问题,并且效果相同(机智的目的和全部)。就我而言,这不是编码问题,而是需要用'\ r \ n'替换每个'\ n',这可以更好地理解换行和回车之间的区别,以及Windows编辑器的事实通常需要\ r \ n作为换行符:12747722

答案 2 :(得分:0)

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

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

var inputText = document.getElementById("textField");
  var myUl = document.getElementsByTagName("ul");

  inputText.addEventListener("keypress", function(event){
   if( event.keyCode === 13){
    var myInputText = this.value;
    var listItem = document.createElement("li");
    var spanItem = document.createElement("span");
    var theText = document.createTextNode(myInputText);
    var span_img = document.createElement("img");
    span_img.src = "images/trashCanBlack.png";
    spanItem.appendChild(span_img);
    listItem.appendChild(spanItem);
    listItem.appendChild(theText);

    myUl[0].appendChild(listItem); // this works, but only adds it on the end
    this.value = "";
      }
     });