完美解决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中的列表生成式与生成器学习教程
Mar 13 Python
numpy数组拼接简单示例
Dec 15 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
python远程连接MySQL数据库
Apr 19 Python
python加载自定义词典实例
Dec 06 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
基于Python的OCR实现示例
Apr 03 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
Apr 22 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
Pyside2中嵌入Matplotlib的绘图的实现
Feb 22 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
PHP中soap的用法实例
2014/10/24 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
Python heapq使用详解及实例代码
2017/01/25 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python批量查询域名是否被注册过
2017/06/21 Python
Php多进程实现代码
2018/05/07 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
机电专业大学生求职信
2013/10/04 职场文书
活动总结模板
2014/05/09 职场文书
经典团队口号
2014/06/06 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
财务经理岗位职责
2015/01/31 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript
24年收藏2000多部退役军用电台
2022/02/18 无线电
如何通过一篇文章了解Python中的生成器
2022/04/02 Python