浅析Python 字符编码与文件处理


Posted in Python onSeptember 24, 2020

Python字符编码

目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk。

python2默认的字符编码方式是ASCII

python3默认的字符编码方式是Unicode

.py文件头部的#coding:utf-8是帮助python识别.py文件的编码方式,故在写.py文件时要注意文件头和文件保存时的编码方式要相同,否则可能会出现乱码

python程序运行过程:

  1. python的解释器现在内存中启动
  2. 解释器把要运行的文件以文本文件的形式读进内存
  3. 解释器按照文件的语法格式解释执行代码

python2和python3程序的运行方式基本相同

python2的解释器在运行程序时,将文件内的代码按照文件头的编码读进内存。例如文件头部的编码是gbk,python2读进内存的时候,直接把文件在硬盘里的gbk二进制编码读进内存。如果在不是以gbk为默认编码的终端输出时,会出现乱码。python2可以在字符串对象前加'u'表示Unicode字符,但是这样就不是str变量了。虽然pyhton2也能支持Unicode编码,但是这就像给python2打了一个大补丁。python2的Unicode对象就是python3str对象。

python3的解释器就好多了,它在执行文件内的代码之前会先将代码按照文件头的编码转换成Unicode编码读进内存。这样无论是在什么编码的机器上运行,Unicode编码都能很好的转换成相应的编码。

Python 文件处理

python程序不能直接操作硬盘的文件,一般都是通过操作系统提供的接口间接地操作文件。

一般来说,对文件的操作的mode有两种,t:字符方式 b:二进制方式

字符方式只能操作文本文件,在打开文件的时候需要指定encoding,不然会因为短句不准确产生乱码

二进制方式可以操作所有的文件,在打开文件的时候不要指定encoding

操作完文件后调用文件对象的close()函数会关闭文件,这只是关闭操作系统对文件的访问,在程序里文件对象会在程序结束的时候自动释放,所以在操作文件结束后,记得调用close()函数,释放系统资源。当然可以用with上下文管理自动释放资源。

以上就是浅析Python 字符编码与文件处理的详细内容,更多关于Python 字符编码与文件处理的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python3中多线程编程的队列运作示例
Apr 16 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
浅谈python可视化包Bokeh
Feb 07 Python
pandas ix &iloc &loc的区别
Jan 10 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
django 通过URL访问上传的文件方法
Jul 28 Python
利用python-docx模块写批量生日邀请函
Aug 26 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
python中remove函数的踩坑记录
Jan 04 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 #Python
python判断元素是否存在的实例方法
Sep 24 #Python
python 实现单例模式的5种方法
Sep 23 #Python
python zip()函数的使用示例
Sep 23 #Python
python 判断一组数据是否符合正态分布
Sep 23 #Python
python合并多个excel文件的示例
Sep 23 #Python
详解Python yaml模块
Sep 23 #Python
You might like
PHP面向对象的使用教程 简单数据库连接
2006/11/25 PHP
php正则表达式(regar expression)
2011/09/10 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
Python 音频生成器的实现示例
2019/12/24 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
《小小竹排画中游》教学反思
2014/02/26 职场文书
中介业务员岗位职责
2014/04/09 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
法律系毕业生求职信
2014/05/28 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
神秘岛读书笔记
2015/07/01 职场文书
户外拓展训练感想
2015/08/07 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python