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

 更新时间:2020年09月24日 08:36:51   作者:Wuliwawa  
这篇文章主要介绍了Python 字符编码与文件处理的相关资料,帮助大家更好的理解和学习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 字符编码与文件处理的资料请关注脚本之家其它相关文章!

相关文章

  • python获取当前文件所在目录、获取上级目录的坑及解决

    python获取当前文件所在目录、获取上级目录的坑及解决

    这篇文章主要介绍了python获取当前文件所在目录、获取上级目录的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • pyinstaller打包django项目的实现步骤

    pyinstaller打包django项目的实现步骤

    本文主要介绍了pyinstaller打包django项目的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Python将json文件写入ES数据库的方法

    Python将json文件写入ES数据库的方法

    这篇文章主要介绍了Python将json文件写入ES数据库的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-04-04
  • Python制作进度条的四种方法总结

    Python制作进度条的四种方法总结

    如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然。要加一个进度条其实只需要几行代码,快跟随小编一起学习学习吧
    2022-11-11
  • python读取文件由于编码问题失败汇总以及解决办法

    python读取文件由于编码问题失败汇总以及解决办法

    这篇文章主要给大家介绍了关于python读取文件由于编码问题失败汇总以及解决办法的相关资料,文件编码错误指的是在Python读取文件的过程中出现的编码不匹配的问题,需要的朋友可以参考下
    2023-10-10
  • 将Python脚本打包成exe文件

    将Python脚本打包成exe文件

    大家好,本篇文章主要讲的是将Python脚本打包成exe文件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Python入门教程(二十六)Python的模块

    Python入门教程(二十六)Python的模块

    这篇文章主要介绍了Python入门教程(二十六)Python的模块,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • Python3实现的判断环形链表算法示例

    Python3实现的判断环形链表算法示例

    这篇文章主要介绍了Python3实现的判断环形链表算法,涉及Python针对环形链表的遍历、判断相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • Python3+Pycharm+PyQt5环境搭建步骤图文详解

    Python3+Pycharm+PyQt5环境搭建步骤图文详解

    这篇文章主要介绍了Python3+Pycharm+PyQt5环境搭建步骤图文详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 解决Python中pandas读取*.csv文件出现编码问题

    解决Python中pandas读取*.csv文件出现编码问题

    很多朋友在使用Python中pandas读取csv文件时,出现编码格式问题,接下来通过本文给大家分享解决Python中pandas读取*.csv文件出现编码问题,需要的朋友可以参考下
    2019-07-07

最新评论