浅析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 相关文章推荐
简单分析Python中用fork()函数生成的子进程
May 04 Python
Python使用multiprocessing创建进程的方法
Jun 04 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
Python实现堆排序的方法详解
May 03 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python3单行定义多个变量或赋值方法
Jul 12 Python
python多任务及返回值的处理方法
Jan 22 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
django rest framework 过滤时间操作
Jul 12 Python
Python实现画图软件功能方法详解
Jul 28 Python
python实现简单猜单词游戏
Dec 24 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中使用正则表达式进行查找替换
2013/06/13 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
对numpy中轴与维度的理解
2018/04/18 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
Tensorflow累加的实现案例
2020/02/05 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
python归并排序算法过程实例讲解
2020/11/04 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
党员实事承诺书
2014/03/26 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
mysql 获取时间方式
2022/03/20 MySQL
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技