完美解决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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
python代码实现ID3决策树算法
Dec 20 Python
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
python MySQLdb使用教程详解
Mar 20 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
python按比例随机切分数据的实现
Jul 11 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
基于PHP生成静态页的实现方法
2013/05/10 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
vue组件间通信解析
2017/03/01 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
对python3中, print横向输出的方法详解
2019/01/28 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
应聘教师推荐信
2013/10/31 职场文书
社区国庆节活动方案
2014/02/05 职场文书
校运动会广播稿300字
2014/10/07 职场文书
工会积极分子个人总结
2015/03/03 职场文书
员工工作表扬信
2015/05/05 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫