浅析Python 字符编码与文件处理
作者:Wuliwawa 时间:2021-09-27 05:30:09
Python字符编码
目前计算机内存的字符编码都是Unicode,目前国内的windows操作系统采用的是gbk。
python2默认的字符编码方式是ASCII
python3默认的字符编码方式是Unicode
.py文件头部的#coding:utf-8是帮助python识别.py文件的编码方式,故在写.py文件时要注意文件头和文件保存时的编码方式要相同,否则可能会出现乱码
python程序运行过程:
python的解释器现在内存中启动
解释器把要运行的文件以文本文件的形式读进内存
解释器按照文件的语法格式解释执行代码
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上下文管理自动释放资源。
来源:https://www.cnblogs.com/wuliwawa/p/9655676.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
如何利用Python分析出微信朋友男女统计图
![](https://img.aspxhome.com/file/2023/5/117885_0s.jpg)
Web标准的web UI
解决Python3用PIL的ImageFont输出中文乱码的问题
![](https://img.aspxhome.com/file/2023/2/105572_0s.jpg)
PyCharm如何导入python项目的方法
![](https://img.aspxhome.com/file/2023/6/88926_0s.png)
Python遍历字典方式就实例详解
Oracle 低权限数据库账户得到 OS 访问权限 提权利用
![](https://img.aspxhome.com/file/UploadPic/20096/19/2009619181037867.png)
利用 Monkey 命令操作屏幕快速滑动
![](https://img.aspxhome.com/file/2023/6/89136_0s.png)
python查看FTP是否能连接成功的方法
Python实现Keras搭建神经网络训练分类模型教程
![](https://img.aspxhome.com/file/2023/1/127101_0s.jpg)
PHP开发实现快递查询功能详解
![](https://img.aspxhome.com/file/2023/3/55723_0s.png)
python配置mssql连接的方法
![](https://img.aspxhome.com/file/2023/0/133880_0s.png)
Python ttkbootstrap 制作账户注册信息界面的案例代码
![](https://img.aspxhome.com/file/2023/6/124396_0s.png)
python基础知识之字典(Dict)
![](https://img.aspxhome.com/file/2023/8/100748_0s.png)
Python Flask 转换器的使用详解
![](https://img.aspxhome.com/file/2023/8/95228_0s.jpg)
asp如何做一个只能从本站点才能访问的页面?
MySQL安全大讲堂:MySQL数据库安全配置
Python实现的多叉树寻找最短路径算法示例
python制作机器人的实现方法
![](https://img.aspxhome.com/file/2023/5/134935_0s.png)
python字典dict中常用内置函数的使用
PHP addcslashes()函数讲解
![](https://img.aspxhome.com/file/2023/9/55399_0s.png)