重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

如何解决python写入文件乱码的问题

小编给大家分享一下如何解决python写入文件乱码的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

十多年的同安网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整同安建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“同安网站设计”,“同安网站推广”以来,每个客户项目都认真落实执行。

对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题。好难快速解决啊。。。

下面说一下解决问题的思路

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写入文件乱码的问题的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章名称:如何解决python写入文件乱码的问题
标题链接:http://cqcxhl.cn/article/jgjdso.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP