一,字符编码:
针对的都是文字
输入的字符 通过相应的字符编码表 翻译成计算机所能识别的二进制数字。
其实对计算机而言,字符只不过是一些相对应二进制数字。
字符编码的发展:
最开始用的字符编码表为 ASCII 码。用八位二进制来表示一个英文字符。
经过时间的沉淀,之后各个国家都有自己的一套字符编码表。 例如 我们自己用的时GBK编码表。
又后来经过一些历史的沧桑,全球制定了一个Unicode 字符编码表,所有国家的字符都能解码,就再也不用担心字符不能识别了。
但是Unicode有个致命的缺点,就是程序运行效率低,且浪费储存空间。
不过,当内存中的Unicode 字符编码格式读到硬盘的时候,会按照UTF-8 编码,也就是会节省空间。
现在的计算机 内存的字符编码表都是Unicode, 而硬盘的都是UTF-8.
Unicode 字符编码表的特点总结:
1.用户再输入的时候,不论是什么字符,它都能兼容。
2.当不同国家的编码数据由硬盘传到内存时,Unicode上都有与之对应的关系。
字符编码总结:
当数据由内存保存到硬盘时:
1.内存中的Unicode编码格式二进制数据 ------------通过encod(编码)-----UTF-8的编码格式二进制数据 ----- 保存到硬盘
当数据由硬盘读取到内存时:
1.将硬盘中的UTF-8的编码格式二进制数据 ---------通过decode(解码)----- Unicode编码格式二进制数据 ----读取到内存
文本文件以什么编码的编的,就以什么编码解
二,文件头
python 写程序时,文件头要写个coding:utf-8
当你不标注文件头的时候,解释器会默认自己的格式储存数据----比如python2中会以ASCII码储存。
所有的编码都支持英文字符。
在python解释器中只要时用到中文前面都需要加个 字母u
三,文件处理以及处理模式:
1.open 打开
r ---- 取消转义
x = open(r'D:feiqRecv Filesday07 est',encoding='utf-8') -----像操作系统发送请求,如果把它赋值给一个变量名,相当于成了遥控器来操作。
x.read() 像操作系统发送请求读取文件内容。
x.close() 让操作系统关闭打开的文件
2.with 操作文件上下文。
with open(r'......................','utf-8') as d,
open (r'......................','utf-8') as d1:
3.write 写入
readable 判断是否可读
writetable 判断是否可写
打开两个文件,当你在with外层级操作时,文件会关闭。
4文件打开的模式
1. mode 为 r 时, 只读模式,而且是一次性将文件内容全部读出。不可修改文件。如果不写r, 默认为r模式。
2.mode 为 w时,只写模式,当文件不在时,自动创立该文件。当文件存在时,会先清空原文件内容再写入。
3.mode为 a 时,是追加写模式,当文件不在时,会自动创建该文件。当文件存在时,会继续在原文件的最后续写。
5.操作文件的单位方式:
t 是指文本文件。 需要指定 encoding 参数。 mode参数不写的话,默认为t 。
b 是二进制。一定不能指定 encoding 参数,一般传其他文件时会写该参数