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

以上就是浅析Python 字符编码与文件处理的详细内容,更多关于Python 字符编码与文件处理的资料请关注我们其它相关文章!

本文标题: 浅析Python 字符编码与文件处理

本文地址: http://www.cppcns.com/jiaoben/python/348974.html

python 字符编码处理_浅析Python 字符编码与文件处理相关推荐

  1. python内置类型方法_浅析Python数字类型和字符串类型的内置方法

    一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...

  2. python 小括号 运算_浅析python 中大括号中括号小括号的区分

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. 1.python中的小括号( ): ...

  3. python中括号的作用_浅析python 中大括号中括号小括号的区分

    python语言最常见的括号有三种,分别是:小括号( ).中括号[ ]和大括号也叫做花括号{ }.其作用也各不相同,分别用来代表不同的python基本内置数据类型. 1.python中的小括号( ): ...

  4. python解释器详解_浅析Python解释器的设计(一)

    一些铺垫(扯淡) 历史上,在Python 2.4以及之前的版本,py代码的执行,也就是从源码到bytecode分为两步: 解析py源码成为分析树 (Parser/pgen.c)基于分析树优化缩减byt ...

  5. python处理中文字符串_处理python字符串中的中文字符

    # -*- coding:utf-8 -*- import sys,os txta = open('a.txt','r') str = '' for line in txta: str += line ...

  6. python中的序列类型数据结构元素的切片操作_浅析python中的分片与截断序列

    浅析python中的分片与截断序列 序列概念 在分片规则里list.tuple.str(字符串)都可以称为序列,都可以按规则进行切片操作 切片操作 注意切片的下标0代表顺序的第一个元素,-1代表倒序的 ...

  7. python的四种内置数字类型_浅析Python数字类型和字符串类型的内置方法

    一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...

  8. python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系

    一.它们是什么? 1.python Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C,Java,C++等,一种编程语言. 2.Anaconda Anaconda指的是一 ...

  9. python条件控制语句要注意什么_浅析Python 条件控制语句

    Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: 代码执行过程: if 语句 Python中if语句的 ...

最新文章

  1. java servlet 返回图片_SpringMVC返回图片的几种方式
  2. Android studio 的快捷键 MAC 和Win版本
  3. Xcode LaunchImage 载入界面大小设置
  4. Mysql 数据库字符集转换及版本升级/降级的详细教程
  5. 小鹏汽车4月交付量5147台 同比增长285%
  6. 我的docker随笔20:多平台docker镜像下载
  7. NoSQL技术入门简介
  8. KVM 虚拟化原理探究(5)— 网络IO虚拟化
  9. java gbk文件转utf8_java 将GBK编码文件转为UTF-8编码
  10. 获取spring 框架源码方式
  11. python爬取微信运动_微信运动数据抓取(Python)
  12. 计算机组装大赛主题,DIY装机大赛策划书
  13. SAP_FI统驭科目
  14. 一文弄懂Flink网络流控及反压
  15. Oracle中索引的创建和使用
  16. 前端:JavaScript (五)XML DOM
  17. 20176408李俊 类与对象
  18. Linux之必备软件安装(搜狗输入法、qq等)
  19. 敏捷开发团队 项目分工_如何为您的软件开发项目建立敏捷团队
  20. Piles-with-stones

热门文章

  1. 数据结构为什么那么难?
  2. 开源Dapper的Lambda扩展-Sikiro.Dapper.Extension V2.0
  3. 在ASP.NET Core中使用brotli压缩
  4. ASP.NET Core Identity Hands On(2)——注册、登录、Claim
  5. Asp.Net Core2.0 基于QuartzNet任务管理系统
  6. 大湾区第二次.NET技术交流会圆满成功
  7. 体验 ASP.NET Core 中的多语言支持(Localization)
  8. 如何迁移#SNMP到.NET Core平台的一些体会
  9. 【MATLAB统计分析与应用100例】案例006:matlab数据的标准化变换
  10. Android之android.os.NewWorkOnMainThreadException解决办法