浅析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通过ssh-powershell监控windows的方法
Jun 02 Python
详解Python中的array数组模块相关使用
Jul 05 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
import的本质解析
Oct 30 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
python3 实现验证码图片切割的方法
Dec 07 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
django创建超级用户过程解析
Sep 18 Python
python 字典的打印实现
Sep 26 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
python跨文件使用全局变量的实现
Nov 17 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购物网站支付paypal使用方法
2010/11/28 PHP
微信API接口大全
2015/04/15 PHP
php排序算法实例分析
2016/10/17 PHP
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
Python实现telnet服务器的方法
2015/07/10 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python实现购物程序思路及代码
2017/07/24 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
代码分析Python地图坐标转换
2018/02/08 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
Python3运算符常见用法分析
2020/02/14 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
医院门卫岗位职责
2013/12/30 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
美术课外活动总结
2014/07/08 职场文书
会议邀请函
2015/01/30 职场文书
教师个人年终总结
2015/02/11 职场文书