您的位置:首页 > 编程语言 > Python开发

解决Python写入文件编码问题(UnicodeEncodeError: 'ascii' codec can't encode characters in...)

2017-06-12 16:11 851 查看
Python在写入中文的时候,往往会发生编码问题,即

Traceback (most recent call last):

File “
<your filename>.py
“, line
<error line>
, in
<module>


f.write(…)

UnicodeEncodeError:
'ascii'
codec can’t encode characters in position <…>: ordinal not in range(…)

在网上搜了一下,发现下面的方法可以解决这个问题.

方法一

文件声明为

# coding=utf-8


开头重载编码

import sys
reload(sys)
sys.setdefaultencoding('utf-8')


写入文件

file=open('<your filename>','w') #<your filename>是你想要写入的文件名字.


整体代码

# coding=utf-8
import sys reload(sys) sys.setdefaultencoding('utf-8')
.
.
.
f=open('filename', 'w')
f.write(...)
f.close()


方法二

导入模块codecs

import codecs


codecs专门用作编码转换.codecs官方文档

import codecs
...
#写入文件函数
def save_to_file(list, filename):
with codecs.open(filename, 'a', encoding='utf-8') as f:
f.writelines(list)


参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python codec ascii
相关文章推荐