解决Python2.7读写文件中的中文乱码问题

 更新时间:2018年04月12日 15:43:26   作者:haha_point  
下面小编就为大家分享一篇解决Python2.7读写文件中的中文乱码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Python2.7对于中文编码的问题处理的并不好,这几天在爬数据的时候经常会遇到中文的编码问题。但是本人对编码原理不了解,也没时间深究其中的原理。在此仅从应用的角度做一下总结,

1.设置默认编码

在Python代码中的任何地方出现中文,编译时都会报错,这时可以在代码的首行添加相应说明,明确utf-8编码格式,可以解决一般情况下的中文报错。当然,编程中遇到具体问题还需具体分析啦。

#encoding:utf-8
或者
# -*- coding: utf-8 -*- 
import sys 
reload(sys) 
sys.setdefaultencoding('utf8') # 设置默认编码格式为'utf-8'

2.文件读写

文件读写中遇到中文,通常不会报错,但是最后运行结果显示乱码,给后续处理带来不便。

2.1 读文件

读文件时,如果文件路径、文件名中有中文,需要使用unicode函数将其编码为'utf-8'格式,然后再进行正常的文件读取。以我常用的pandas的read_csv函数为例,使用如下代码可以成功地读取名为“POI总表”的csv文件,保存在DataFrame数据类型的poi_list。

import pandas as pd
inpath = 'C:\\POI总表.csv'
**path = unicode(inpath, 'utf-8')**
poi_list = pd.read_csv(path)

2.2 写文件

文件名有中文,文件名乱码

当想要将程序运行结果保存到文本文件时,文本文件的命名中如果有中文,不做处理文件名会出现乱码。利用unicode函数进行编码可解。unicode(‘中文.csv','utf-8')

文件内容有中文,excel打开内容乱码

如果将包含中文的结果输出到csv文件,一般默认使用Excel打开文件时,文件内容会出现乱码,而使用文本编辑器打开不会乱码。这是因为Excel默认的编码方式为‘GBK‘,而文本编辑器默认的格式为‘utf-8'。使用codecs包在创建文件后添加语句f.write(codecs.BOM_UTF8)可解

name='语文'
f = open(name+'.csv','w')
f.write('123,语文')
f.close()
#修改编码
import codecs
f = open(**unicode(name+'.csv','utf-8')**,'w') # 文件名不乱码
**f.write(codecs.BOM_UTF8) # excel打开内容不乱码的核心语句**
f.write('123,语文')
f.close()

输出结果:

#文件名:璇枃.csv
#Excel打开  123 璇枃
#文本编辑器打开 123,语文
#改编码后
#文件名:语文.csv
#Excel打开  123 语文
#文本编辑器打开 123,语文

以上这篇解决Python2.7读写文件中的中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python使用PIL实现多张图片垂直合并

    python使用PIL实现多张图片垂直合并

    这篇文章主要为大家详细介绍了python使用PIL实现多张图片垂直合并,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • python之Django自动化资产扫描的实现

    python之Django自动化资产扫描的实现

    这篇文章主要介绍了python之Django自动化资产扫描的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python numpy 反转 reverse示例

    python numpy 反转 reverse示例

    今天小编就为大家分享一篇python numpy 反转 reverse示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python UNIX_TIMESTAMP时间处理方法分析

    python UNIX_TIMESTAMP时间处理方法分析

    这篇文章主要介绍了python UNIX_TIMESTAMP时间处理方法,结合实例形式分析了Python针对UNIX_TIMESTAMP时间的常见运算技巧,需要的朋友可以参考下
    2016-04-04
  • 完美解决pycharm导入自己写的py文件爆红问题

    完美解决pycharm导入自己写的py文件爆红问题

    今天小编就为大家分享一篇完美解决pycharm导入自己写的py文件爆红问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 一个基于flask的web应用诞生 flask和mysql相连(4)

    一个基于flask的web应用诞生 flask和mysql相连(4)

    一个基于flask的web应用诞生第四篇,这篇文章主要介绍了如何让flask和mysql进行互联,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • python装饰器"@"使用实例深入探究

    python装饰器"@"使用实例深入探究

    这篇文章主要为大家介绍了python装饰器"@"使用实例深入探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python检查ping终端的方法

    Python检查ping终端的方法

    今天小编就为大家分享一篇Python检查ping终端的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 利用python实时刷新基金估值效果(摸鱼小工具)

    利用python实时刷新基金估值效果(摸鱼小工具)

    这篇文章主要介绍了利用python实时刷新基金估值(摸鱼小工具),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python必备技巧之集合Set的使用

    Python必备技巧之集合Set的使用

    在数学中,对集合的严格定义可能是抽象的且难以掌握。但实际上可以将集合简单地认为是定义明确的不同对象的集合,通常称为元素或成员。Python 提供了一个内置的集合类型来将对象分组到一个集合中,快跟随小编一起学习一下吧
    2022-03-03

最新评论