完美解决Python2操作中文名文件乱码的问题


Posted in Python onJanuary 04, 2017

Python2默认是不支持中文的,一般我们在程序的开头加上#-*-coding:utf-8-*-来解决这个问题,但是在我用open()方法打开文件时,中文名字却显示成了乱码。

我先给大家说说Python中的编码问题,Python中的字符串的大概分为为str和Unicode两种形式,其中str常用的编码类型为utf-8,gb2312,gbk等等,Python使用Unicode作为编码的基础类型。str记录的是字节数组,只是某种编码的存储格式,终于输出到文件或是打印出来是什么格式,完全取决于其解码的编码将他解码成什么样子;Unicode是一种类似于符号集的抽象编码,它只规定了符号的二进制代码,却没有规定这个二进制代码该如何存储,也就是它只是一种内部表示,不能直接保存,所以存储时需要规定一种存储形式,比如utf-8等。

Python中有编码转换的函数有:

decode(char_set) 实现char_set解码成Unicodeencode(char_set) 实现Unicode编码成char_set

 完美解决Python2操作中文名文件乱码的问题

查看Python文档会发现:

open(filename, 'w')这个方法中,filename这个参数必须是Unicode编码的参数。

我之前加上#-*-coding:utf-8-*-将编码设置为utf-8,当调用这个方法往里传参数时,需要将这个变量filename解码成Unicode。

比如filename='中文.txt',使用open()时,这样写open(filename.decode('utf-8'), 'w'),这样创建的中文文件名就没有乱码问题了。

以上就是小编为大家带来的完美解决Python2操作中文名文件乱码的问题全部内容了,希望大家多多支持三水点靠木~

Python 相关文章推荐
讲解Python中for循环下的索引变量的作用域
Apr 15 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
python可视化爬虫界面之天气查询
Jul 03 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 #Python
python去掉行尾的换行符方法
Jan 04 #Python
python对json的相关操作实例详解
Jan 04 #Python
python的random模块及加权随机算法的python实现方法
Jan 04 #Python
python 实现红包随机生成算法的简单实例
Jan 04 #Python
Python 模板引擎的注入问题分析
Jan 01 #Python
python getopt详解及简单实例
Dec 30 #Python
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
oracle资料库函式库
2006/10/09 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
Python如何对XML 解析
2020/06/28 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
机电专业体育教师求职信
2013/09/21 职场文书
村官工作鉴定评语
2014/01/27 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
2015毕业寄语大全
2015/02/26 职场文书
学困生转化工作总结
2015/08/13 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫