Python文件中文编码问题

读写中文

需要读取utf-8编码的中文文件,先利用sublime text软件将它改成无DOM的编码,并且在第一行写:

# encoding: utf-8

然后用以下代码:

with codecs.open(note_path, 'r+','utf-8') as f:

line=f.readline()

print line

这样就可以正确地读出文件里面的中文字符了。

当然,前面的方法只能读一行,要读出所有数据,就使用readlines(),然后再遍历:

with codecs.open(note_path, 'r+','utf-8') as f:
    lines=f.readlines()
    for problemName in lines:

同样的,如果要在创建的文件中写入中文,最好也和上面差不多:

with codecs.open(st,'a+','utf-8') as book_note:

book_note.write(st)

创建中文文件

然后以读出的字符为文件名,创建文件。

如果直接用上面读出来的字符串创建文件,则会出现:

st=digest_path+"\"+onenote[0]+".txt"

print st

with open(st,'a+') as book_note:

经过调试,应该是最后一个换行符的问题,在生成名字的时候,将字符trip一下,就能够得到文件:

st=digest_path+"\"+onenote[0].strip()+".txt"
原文地址:https://www.cnblogs.com/FannyChung/p/4985987.html