浅析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-06-25 13:06:03
  • Mysql+Keepalived实现双主热备方式

    2024-01-27 10:23:34
  • 关于Python 中IndexError:list assignment index out of range 错误解决

    2021-01-27 19:06:01
  • XML 在使用中产生的二十个热点问题

    2008-05-29 11:07:00
  • SQL Server中Table字典数据的查询SQL示例代码

    2024-01-25 13:47:49
  • python求绝对值的三种方法小结

    2023-04-17 19:57:09
  • python实现合并两个有序列表的示例代码

    2021-06-02 20:07:29
  • Python实战使用Selenium爬取网页数据

    2021-06-18 19:11:56
  • 商品评论的设计

    2009-12-23 13:06:00
  • Ubuntu安装Jupyter Notebook教程

    2021-03-12 03:14:58
  • 用Python在Excel里画出蒙娜丽莎的方法示例

    2023-12-18 02:59:21
  • 解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题

    2021-06-03 06:31:22
  • 详解Python查找谁删了你的微信

    2021-01-02 02:32:02
  • sql server 获取系统时间的方法

    2023-07-17 07:05:36
  • 用Python遍历C盘dll文件的方法

    2023-04-27 20:15:27
  • ASP怎样获得代码中第一张图片地址

    2008-10-29 09:40:00
  • python使用arcpy.mapping模块批量出图

    2021-03-12 04:28:15
  • python如何使用contextvars模块源码分析

    2021-12-03 21:55:21
  • 如何获知文件被改动的情况?

    2009-11-24 20:42:00
  • python 第三方库的安装及pip的使用详解

    2023-12-27 07:06:53
  • asp之家 网络编程 m.aspxhome.com