完美解决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生成随机数的方法
Jan 14 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
Python中有趣在__call__函数
Jun 21 Python
使用python实现省市三级菜单效果
Jan 20 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
django admin组件使用方法详解
Jul 19 Python
python之生产者消费者模型实现详解
Jul 27 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
pytorch 共享参数的示例
Aug 17 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
django中websocket的具体使用
Jan 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
php数据库连接
2006/10/09 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
一篇不错的Python入门教程
2007/02/08 Python
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
pycharm远程调试openstack代码
2017/11/21 Python
简单实现python进度条脚本
2017/12/18 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
大学活动策划书范文
2014/01/10 职场文书
写自荐信三大法宝
2014/01/24 职场文书
物流专业求职信
2014/06/30 职场文书
思品教学工作总结
2015/08/10 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技