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读excel乱码_解决Python2.7读写文件中的中文乱码问题相关推荐

  1. python绘图设置标题出现乱码_解决python2 绘图title,xlabel,ylabel出现中文乱码的问题...

    Python绘图如何显示中文标题一个懂得以幽默态度面对自己缺点并将缺点变成自己专属的特色-这才是真正乐观勇敢的人. 采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚 ...

  2. sscom 中文显示 乱码_解决SSM框架使用过程中的中文乱码问题

    在使用搭建的SSM框架进行数据的CRUD操作时,出现了中文字符无法正确传递至后台,并写入数据库中的数据为"???"的形式.经过查询资料与试验,可以用如下方法来解决: 1.前端输入的 ...

  3. oracle xe 乱码_解决关于:Oracle数据库 插入数据中文乱码 显示问号???

    ABP(现代ASP.NET样板开发框架)系列之19.ABP应用层--审计日志 点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之19.ABP应用层--审计日志 AB ...

  4. python3输出中文_解决Python3用PIL的ImageFont输出中文乱码的问题

    今天在用python3+ImageFont输出中文时,结果显示乱码 # coding:utf-8 from PIL import Image, ImageDraw, ImageFont image= ...

  5. vue样式中背景图片路径_解决vue打包css文件中背景图片的路径问题

    vue-cli写完的静态页面我们在node环境中引入没有问题,但是打包后放在Apache环境下,路径却有问题了 如一个简单css语句 .welcome { width: 420px; height: ...

  6. springmvcget中文乱码_解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题...

    新配置一个spring的MVC项目,发现对Get请求的中文参数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中),如下: encodingFilter org.springfr ...

  7. 易语言 mysql查询 中文乱码_大佬们E语言连接MYSQL输出中文乱码怎么破

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 .版本 2 .支持库 mysql .支持库 iext .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 数据库连接句柄 = 连接MySql (& ...

  8. java web乱码_【SpringBoot WEB 系列】RestTemplate 之中文乱码问题 fix

    [WEB 系列]RestTemplate 之中文乱码问题 fix 在 RestTemplate 基础用法博文中,post json 表单时,会发现存在中文乱码问题,本文主要介绍对应的解决方案 I. 中 ...

  9. java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案

    本文的作用是,生成带中文的加密pdf格式的文件,防止被人修改. 在项目下建立docbook-xsl, fo-res, out, sample四个文件夹 docbook-xsl目录: 放从sourcef ...

最新文章

  1. JasperReport报表设计4
  2. centos7精简安装后使用发现没有killall命令
  3. Android中Canvas绘图之Shader使用图文详解
  4. [黑客技术]提权总结21种办法篇
  5. windows.onload和body的onload属性的区别
  6. android 好看的输入法,好看更好用的搜狗手机输入法Android v7.5
  7. Ubuntu环境下的VirtualBox,连接Redhat虚拟机的步骤
  8. shell编程中if []的用法注意
  9. 如何修改PDF文档,怎么编辑PDF背景
  10. 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
  11. 数据通信与计算机网络
  12. 运动蓝牙耳机什么牌子好,运动蓝牙耳机排行榜
  13. 数学建模之matlab软件学习04——专题四MATLAB绘图
  14. 工作例会关于“工作效率”的分享
  15. symbian 串行通信
  16. 基于RFID和ZigBee室内定位技术原理浅析--室内定位--蓝牙定位--新导智能
  17. 【清华AI自强计划-计算机视觉课程-第三讲课程笔记1】
  18. python利用matplotlib库绘制三维图学习
  19. UE4 键盘控制开关灯
  20. 机器人运动学---雅克比矩阵伪逆

热门文章

  1. mac idea中添加JDK源码注释
  2. 列表的查询--Python
  3. (Java) 解决使用 base64编码 保存到本地的图片出现破损的问题。 另:将base64编码图片上传至本地/OSS。
  4. ajax请求http400错误的几种解决方法
  5. 3月6日服务器例行维护公告,1月6日服务器例行维护公告
  6. 使用GFS数据驱动WRF模式场--2层嵌套 全过程学习记录
  7. 面试-Spring的生命周期
  8. JSP 页面自动刷新
  9. 怎么查看mysql是否锁表_MySQL查看是否锁表
  10. 幻读是什么,幻读有什么问题?