十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
专注于为中小企业提供成都做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业古冶免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。小编给大家分享一下如何解决python写入文件乱码的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题。好难快速解决啊。。。
下面说一下解决问题的思路
1. python中习惯首先声明编码类型
#!/usr/bin/python # -*- coding:-*- import sys reload(sys) sys.setdefaultencoding('utf-8')
PS:不一定所有文件都是 utf-8 编码的,这里要注意。
2. 出现编码问题时,首先查看下该文件的初始编码方式,linux下命令为 :file -i filename,
eg:当前文件的编码为 “ISO-8859-1”,随后就将Python中的”utf-8“做了相应修改。
在读取文件时,需要先解码:
str = str.decode("ISO-8859-1") ## 这样返回的就是unicode的str
在写入文件时,再用同样的方式编码(这里暂且不提文件转码):
str = str.encode("ISO-8859-1")
例如,解析一段“ISO-8859-1”编码的json,代码如下(更多学习内容,请点击python学习网)
import json Jstr = json.loads(str, encoding="ISO-8859-1") ######## ## handle sth to ”data“ ######## print data.encode("ISO-8859-1")
这样print 或 写入的文件就不存在乱码啦。
3:utf-8格式写入文件
如果以上 json 文件是 utf-8 编码,写入后转为了 unicode,现在要写入utf-8,可以用如下方式:
import codecs name='xxx.json' f=codecs.open(name,'r',encoding='utf8') of=codecs.open(name+'.txt','w', encoding='utf8') for line in f: dictdata=json.loads(line) out=json.dumps(dictdata,indent=4, ensure_ascii=False) of.write(out+'\n') of.close()
以上是如何解决python写入文件乱码的问题的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!