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

作者:Wuliwawa 时间:2021-09-27 05:30:09 

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上下文管理自动释放资源。

来源:https://www.cnblogs.com/wuliwawa/p/9655676.html

标签:python,字符,编码,文件处理
0
投稿

猜你喜欢

  • 如何利用Python分析出微信朋友男女统计图

    2021-12-03 15:46:09
  • Web标准的web UI

    2008-01-02 12:34:00
  • 解决Python3用PIL的ImageFont输出中文乱码的问题

    2022-09-09 04:49:22
  • PyCharm如何导入python项目的方法

    2022-10-23 05:50:35
  • Python遍历字典方式就实例详解

    2021-02-16 08:50:58
  • Oracle 低权限数据库账户得到 OS 访问权限 提权利用

    2009-06-19 17:27:00
  • 利用 Monkey 命令操作屏幕快速滑动

    2021-03-06 11:37:50
  • python查看FTP是否能连接成功的方法

    2023-11-04 13:31:50
  • Python实现Keras搭建神经网络训练分类模型教程

    2023-08-06 12:33:03
  • PHP开发实现快递查询功能详解

    2023-11-24 12:19:39
  • python配置mssql连接的方法

    2021-05-12 08:03:28
  • Python ttkbootstrap 制作账户注册信息界面的案例代码

    2021-02-10 04:05:11
  • python基础知识之字典(Dict)

    2023-08-25 20:01:44
  • Python Flask 转换器的使用详解

    2023-06-30 15:42:09
  • asp如何做一个只能从本站点才能访问的页面?

    2010-07-12 19:00:00
  • MySQL安全大讲堂:MySQL数据库安全配置

    2009-10-18 11:24:00
  • Python实现的多叉树寻找最短路径算法示例

    2023-03-07 16:37:23
  • python制作机器人的实现方法

    2022-11-09 21:09:05
  • python字典dict中常用内置函数的使用

    2022-09-06 02:10:09
  • PHP addcslashes()函数讲解

    2023-06-10 01:32:33
  • asp之家 网络编程 m.aspxhome.com