完美解决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中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python list操作用法总结
Nov 10 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
pycharm 配置远程解释器的方法
Oct 28 Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
python安装scipy的步骤解析
2019/09/28 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Python post请求实现代码实例
2020/02/28 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
幼儿园教师个人反思
2014/01/30 职场文书
销售助理岗位职责
2014/02/21 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
《穷人》教学反思
2016/02/19 职场文书
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技