zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    链表
    线程池 ------ linux C实现
    thymeleaf 标签使用方法
    thymeleaf的配置
    exception processing, template error resolving template
    Thymeleaf模板表达式
    Mybatis:使用bean传值,当传入值为Null时,提示“无效的列类型”的解决办法
    windows 查看端口
    session与cookie的区别
    substr与substring的区别
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575372.html
Copyright © 2011-2022 走看看