优草派 > Python

Python读文件内容乱码有哪几种情况?通过实例来知道解决方法

陈立鑫         优草派

许多学开发的程序员们都知道,一般开发所用的编辑器软件都不支持中文编写开发的(易语言除外),就连很多编辑软件读取文件中有中文也会出现乱码的情况,通过这篇文章教你轻松解决乱码问题。

Python读文件内容乱码有哪几种情况?通过实例来知道解决方法

Python2读文件内容乱码怎么解决,解决方法:

(一)设置默认编码

在不管在C语言代码还是Python代码中的任何地方出现中文,编译时都会报错,这时开发者可以在代码的首行添加相应说明,说明utf-8编码格式,可以解决一般情况下的中文报错。代码如下:

#encoding:utf-8

或者

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

(二)文件读写

文件读写中遇到中文,通常能够让你成功的跑程序,但是最后运行结果显示乱码,给后续处理带来不便。

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)写文件

当我们开发者想要程序结果保存到文本文件时,文本文件的命名中如果有中文,不做处理文件名会出现乱码。利用unicode函数进行编码可解。

unicode(‘中文.csv','utf-8')

3)如果文件内容有中文,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,英语
  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024