最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python写入文件乱码怎么办

    正文概述    2020-04-26   213

    python写入文件乱码怎么办

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

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

    1. python中习惯首先声明编码类型

    #!/usr/bin/python  
    # -*- coding: <encoding name> -*-
    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写入文件乱码怎么办

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元