完美解决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 open读写文件实现脚本
Sep 06 Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
Python hashlib常见摘要算法详解
Jan 13 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
python实现最速下降法
Mar 24 Python
基于Django signals 信号作用及用法详解
Mar 28 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
django 多数据库及分库实现方式
Apr 01 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
python em算法的实现
Oct 03 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
摘自启点的main.js
2008/04/20 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
浅谈Python中的数据类型
2015/05/05 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
体育教师自荐信范文
2013/12/16 职场文书
模范班主任事迹材料
2014/12/17 职场文书
2015年档案室工作总结
2015/05/23 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
庭外和解协议书
2016/03/23 职场文书