完美解决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 mysqldb连接数据库
Mar 16 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
python批量提取word内信息
Aug 09 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
Python中property属性实例解析
Feb 10 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
Django之路由层的实现
Sep 09 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 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
论建造顺序的重要性
2020/03/04 星际争霸
php 无极分类(递归)实现代码
2010/01/05 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
php之curl设置超时实例
2014/11/03 PHP
php生成html文件方法总结
2014/12/01 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
python使用pil生成缩略图的方法
2015/03/26 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
利用python实现AR教程
2019/11/20 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
零基础小白多久能学会python
2020/06/22 Python
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
优秀管理者事迹材料
2014/05/22 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
小学主题班会教案
2015/08/17 职场文书
考研经验交流会策划书
2015/11/02 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang
一文弄懂MySQL索引创建原则
2022/02/28 MySQL