完美解决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 16 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
Django实现学员管理系统
Feb 26 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
Python flask框架端口失效解决方案
Jun 04 Python
python3将变量输入的简单实例
Aug 19 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
如何用python实现一个HTTP连接池
Jan 14 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中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
python中执行shell命令的几个方法小结
2014/09/18 Python
Python科学画图代码分享
2017/11/29 Python
详解python中的Turtle函数库
2018/11/19 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
如何利用python发送邮件
2020/09/26 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
正规的求职信范文分享
2013/12/11 职场文书
婚庆公司计划书
2014/09/15 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
公司借款担保书
2015/09/22 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS