文件处理

Posted hj59988326

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件处理相关的知识,希望对你有一定的参考价值。

文件处理(一)

字符编码

字符(存储了信息的东西)编码()

键盘 发送的是电流 --> 主机(内存)接收到电流(当作01010101010) --》 显示屏 接收电流(当作01010101010 --》键盘)

编码: 01010101010 --》 键盘

文本编辑器存储信息的过程

文本编辑器 --》 写文本 --》 存储信息

显示屏(内存) --》(转换)硬盘

中文 --》 00101101001010

english -》 111110000

手纸 -》 00000011111

早期 美国人 才用计算机

0 -> a

1 -> b

0001 --> a

0011 --> b

...

1111 --> w

0000 0000 -> a

ascii编码 --》 美国人

# acill编码的转换关系的方法
print(chr(65))
print(ord('a'))

日本要用计算机,韩国也要用计算机,中国也要用计算机

日本人也造一种编码 --》 shit

0001 --> a

0010 --> b

韩国人也造一种编码 --》 fuck

0001 -> c

0010 -> d

中国人也造一种编码 --》gb2312

德国 --》bitch

000010 苍(日文) 000010 汫(中文)

我要在韩国人的电脑上写日文(0001 0010 --> ab) --> 韩国(0001 0010 --> cd) ---》 以前看片的乱码现象

早期,各个国家只能使用各个国家的计算机 --》 天下大势分久必合,合久必分

这个时候就出现了unicode编码(一种对应关系)

unicode可以认识万国编码

硬盘中无论躺着什么格式的编码文件,unicode都可以识别,假设你看日本的片子,从硬盘中读取fuck编码,然后unicode识别,unicode帮你转换成gb2312,解决了乱码的问题,用unicode存

都用unicode取,又用unicode存,以后写代码只能写Unicode --》 以后全世界的代码都是unicode

unicode存的时候多占用空间,所以出现了utf8(只和unicode一一对应)--》解决了unicode内存占用的问题

现在所有的电脑都是这样的 --》 内存中unicode取,存用utf8存(硬盘),全世界的人写代码/写文件都是用utf8

内存中为什么不用utf8?utf8和gb2312/fuck都没有转换关系,因此内存都要用unicode

未来迟早有一天,内存要用utf8

gb2312和gbk的区别

先能用就行,不常用的词+繁体字

gb2312 --》 常用词

gbk --》 所有字

windows系统的记事本默认编码 是 gbk,除此之外都是utf8

用什么编码写,就用什么编码读

写用utf8,存用utf8,读用gbk--》乱码

写用utf8,存用gbk,--》乱码 ,读用 --》除非你找日文编码,放入中文 の(中文的一个符号,不是日文的“的”)

编码和解码

unicode编码 ---》(编码) utf8 从内存到硬盘

utf8 --》(解码) unicode 从硬盘到内存

现在内存只有unicode编码

python解释器(文本编辑器)解释python代码的流程

1/python解释器相当于文本编辑器,把代码读入python解释器 --》 字符编码 -》 python2默认是ascill,python3默认utf8 --》 上coding头

中文 # gbk编码的中文加

2/识别代码 --》print有意义 --》 语法问题

# coding:gbk  # 告诉python解释器用gbk去完成第一步,读入字符
中文

3/产生结果 --》 跑到终端--》字符编码

终端有一个特性:你的电脑是什么编码,就按照什么编码的来,windows终端是gbk

代码除了编码错误,首先加 # -* coding:utf8 *-

爱迪生(商人)-->发明大王--》 赚钱/能够给别人用

2.5美元一个,40美分卖他,签订一个契约,18年内必须得买他的电灯,还是40美分,长远考虑

python2和python3编码的区别

python2

python2有两种存储变量的形式,第一种:unicode;第二种:coding开头

假设python用utf8存储x=‘中文‘,当你print(x)的时候终端接gbk的变量x,但是windows终端编码是utf8,会乱码

假设oython2用unicode存储,终端接收的是unicode,windows终端编码是utf8还是gbk就不重要了

python3

python3只有一种存变量的形式,unicode

python3用unicode存储,终端接收的是unicode,windows终端无论是utf8还是gbk都没事,不会乱码

lt = '中文' # == u'中文'2
print(lt1)

技术图片

以上是关于文件处理的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

处理屏幕旋转上的片段重复(带有示例代码)

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

你如何在 python 中处理 graphql 查询和片段?

如何有效地打开 30gb 的文件并处理其中的片段而不减慢速度?

是否有在单个活动中处理多个片段的 Android 设计模式?