python字符编码和文件处理
一.了解字符编码的知识储备
1.文本编辑器存取文件的原理(nodepad++,python,word)
- 打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放于内存中的,断电后数据丢失
- 要想永远保存,需要点击保存按钮:编辑器把内存的数据刷到硬盘上
- 在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已.
2.python解释器执行py文件的原理,(python,test.py)
- 第一阶段: python解释器启动,此时就相当于启动了一个文本编辑器
- 第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中
- 第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码
3.过程:
文本编辑器°一个文件的三个过程:
- 先启动文本编辑器
- 文件编辑器会将文件内容读入内存
- 将读入内存的内容显示到屏幕上
CPython解释器执行一个py文件的三个过程:
- 先启动python解释器
- python解释器会将py文件的内容当中普通的文本内容读入内存
- 开始解释执行刚刚读入内存的代码,识别python语法
4.字符编码
字符编码指的是字符转换成或者编码成数字
编码的过程一定要遵循一个标准,该标准称之为字符编码表
- ASCII表:只能识别英文字符,用8bit对应一个英文字符 (一个英文字符===>1Bytes)
- GBK表:可以识别中文字符/英文字符,用8bit对应一个英文字符,用16bit对应一个中文字符(1个英文字符==>1Bytes/ 1个中文字符==>2Bytes)
- unicode(内存中默认使用该编码) :用2Bytes表示一个字符(特点: 1.可以识别万国字符 2.与各种字符编码的二进制数字都有对应关系)
- utf-8全称Unicode Transformaation Format: (1个英文字符==>1Bytes 1个中文字符==>3Bytes)
结论:
1.编码与解码
字符---------编码--------->>数字
字符<<-------解码-----------数字
unicode二进制---------编码-------->>utf-8二进制
unicode二进制<<-------解码----------utf-8二进制
2.内存中固定使用unicode编码,我们可以改变的是数据由内存刷到硬盘时采用的编码 (应该采用utf-8)
unicode的特点:
1.可以识别万国字符
2.与各种字符编码的二进制数字都有对应关系
3.解决乱码问题的核心
1.字符当初以什么编码存的,就应该以什么编码去读
2.保证运行python程序的前两个阶段不乱码的解决方案:添加文件头 (在文件首行添加 "#coding: 文件当初存的字符编码)
4.python解释器默认的编码
python3: utf-8
python2: ASCII
python字符编码和文件处理的更多相关文章
- Python 字符编码及其文件操作
本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...
- python字符编码与文件打开
一 字符编码 储备知识点: 1.计算机系统分为三层: 应用程序 操作系统 计算机硬件 2.运行Python程序的三个步骤 1.先启动python解释器 2.再将python文件当做普通的文本文件读入内 ...
- 06 Python字符编码与文件处理
python垃圾回收机制: python中的垃圾回收机制是以引用计数为主,分代收集为辅,引用计数的缺陷是循环引用的问题,一个对象的引用数为0 ,那么这个对象就会被python虚拟机回收内存 字符编码 ...
- python字符编码与文件操作
目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...
- python基础(三)----字符编码以及文件处理
字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程 字符--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...
- python基础知识5---数据类型、字符编码、文件处理
阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业 一 引子 1 什么是数据? x=10,10 ...
- Python之字符编码与文件操作
目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...
- python字符编码-文件操作
字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...
- python文件操作:字符编码与文件处理
一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...
随机推荐
- react-踩坑记录——Link带参数跳转后this.props为空对象
原因,自组件在挂载时,父组件没向其传props划线部分不可缺少!!!!!!
- (6)Java数据结构-- 转:JAVA常用数据结构及原理分析
JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balab ...
- SuperDiamond在JAVA项目中的三种应用方法实践总结
SuperDiamond在JAVA项目中的三种应用方法实践总结 1.直接读取如下: @Test public static void test_simple(){ PropertiesConfigur ...
- apache基础学习
1,apache是什么? 目前最主流的三个Web服务器是Apache Nginx IIS 2,环境搭建 linux系统安装xampp: 先下载xampp for linux,放在/opt文件夹下,程序 ...
- qt5.6.2简单操作mysql数据库
1.新建个项目后,需要在.pro工程文件在中添加QT += sql,否则编译会出错: 2.如果出现数据库驱动未加载,则需要把mysql下的libmysql.dll拷贝到D:\Qt5.6.2\5.6\m ...
- oracle坏块问题的处理
一.背景 今天有用户反映数据库连不上了,查看日志发现有数据库坏块. 查看数据库日志,有如下报错: ORA-01578: ORACLE , 93642) ORA-01110: 1: '/oracle/a ...
- 对象及变量的并发访问(同步方法、同步代码块、对class进行加锁、线程死锁)&内部类的基本用法
主要学习多线程的并发访问,也就是使得线程安全. 同步的单词为synchronized,异步的单词为asynchronized 同步主要就是通过锁的方式实现,一种就是隐式锁,另一种是显示锁Lock,本节 ...
- flask 源码剖析
flask 上下文管理源码流程及涉及的部分技术点 [flask源码梳理]之一 偏函数_mro [flask源码梳理]之二 面向对象中__setattr__ [flask源码梳理]之三 Local ...
- [转]Python中的eval()、exec()及其相关函数
Python中的eval().exec()及其相关函数 刚好前些天有人提到eval()与exec()这两个函数,所以就翻了下Python的文档.这里就来简单说一下这两个函数以及与它们相关的几个函数 ...
- OninitDialog与OnCreate两个消息有何区别
WM_INITDIALOGThe WM_INITDIALOG message is sent to the dialog box procedure immediately before a dial ...