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

浅析Python 字符编码与文件处理,第1张

浅析Python 字符编码文件处理

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 字符编码与文件处理的资料请关注考高分网其它相关文章!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/3207771.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-03
下一篇 2022-10-03

发表评论

登录后才能评论

评论列表(0条)

保存