浅析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 相关文章推荐
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
python selenium 弹出框处理的实现
Feb 26 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
浅析Python 字符编码与文件处理
Sep 24 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
Python中Cookies导出某站用户数据的方法
May 17 Python
一些让Python代码简洁的实用技巧总结
Aug 23 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
十天学会php之第六天
2006/10/09 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
javascript静态的url如何传递
2007/05/03 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
Python判断文件和字符串编码类型的实例
2017/12/21 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
党员自我对照检查材料
2014/08/19 职场文书
会计人员演讲稿
2014/09/11 职场文书
离婚协议书怎么写
2015/01/26 职场文书
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL