• Python生成csv中文乱码解决办法


    前言

    在Linux下面用python进行数据处理,然后输出为csv格式,如果没有中文一切正常,但是如果有中文,就会出现乱码的问题,本篇将讲述怎么处理这个问题

    处理过程

    原始代码

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    import csv
    #import codecs
    with open('test.csv', 'wb') as csvfile:
    #    csvfile.write(codecs.BOM_UTF8)
        spamwriter = csv.writer(csvfile, dialect='excel')
        spamwriter.writerow(['测试'] * 5 + ['Baked Beans'])
        spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
    

    运行以后:
    Linux下的效果

    [root@lab8106 ~]# cat test.csv 
    测试,测试,测试,测试,测试,Baked Beans
    Spam,Lovely Spam,Wonderful Spam
    

    Windows下打开的效果
    image_1atnnp5i41b7lf7tumgj6175k9.png-4.3kB

    修改代码

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    import csv
    import codecs
    with open('test.csv', 'wb') as csvfile:
        csvfile.write(codecs.BOM_UTF8)
        spamwriter = csv.writer(csvfile, dialect='excel')
        spamwriter.writerow(['测试'] * 5 + ['Baked Beans'])
        spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
    

    跟上面的代码相比,引入了两行代码

    import codecs

    csvfile.write(codecs.BOM_UTF8)

    我们再来看效果Linux下的效果

    [root@lab8106 ~]# cat test.csv 
    测试,测试,测试,测试,测试,Baked Beans
    Spam,Lovely Spam,Wonderful Spam
    

    Windows下打开的效果
    image_1atnnsp1713931d1h1e641l4f13kim.png-3.5kB
    问题解决

    总结

    网上找了一些资料,这个方式比较快而简单,就先用这个方式解决,方法有很多

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2016-09-28
  • 相关阅读:
    SQLite数据库如何存储和读取二进制数据
    JS常用代码
    获取内容第一张图片地址的函数
    我对App_Code的理解
    VS2008中Web项目的App_Code目录问题
    jQuery 浮动广告实现代码
    常用的倒计时脚本
    IE8 CSS hack
    精典的网吧常用批处理收集
    ASP.NET中App_Code,App_Data等文件夹的作用
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575372.html
Copyright © 2020-2023  润新知