字符编码及文件执行

1.运行程序的三个核心硬件:cpu、内存、硬盘

   任何一个程序想要运算,必选现有硬盘加载到内存,然后cpu去内存取指执行。

2.python解释器运行一个py文件(xxx.py)步骤

   1.将python解释器的代码由硬盘读到内存

   2.将xxx.py以普通文本形式读到内存

   3.python读取文件内容,识别python语法,执行相应操作。

   ps:普通文本编辑器与python解释器前两步都是一样的

一、字符编码

   字符编码针对的是文字,那也就意味着这里不需要考虑视频文件、音频文件等其他文件。意思是,字符吗只跟文本文件有关。人在操作计算机的时候输入的是人能看懂的字符,但是计算机智能识别010101这样的二进制数字。

1.字符编码表

就是字符与数字的对应关系

ASCII码表

用八位二进制表示一个英文字符 所有的英文字符+符号最多也就在125位左右

0000 0000

1111  1111

GBK

用2Bytes表示一个中文字符,还可以用1Bytes表示一个英文字符

 

2.万国码unicode

统一用2Bytes表示所有字符

a0000 0000 0010 1010

1.浪费存储空间

2.io次数增减,程序运行效率降低(致命)

当内存中的unicod编码格式数据存到硬盘的时候,会按照utf-8编码

会将unicode的英文字符由原来的2Bytes变成1Bytes

现在的计算机

内存都是unicode

硬盘都是utf-8

3.unico的两个特点

 1.用户在输入的时候,无论输什么字符都能够兼容万国字符

 2.其他国家编码的数据由硬盘读到内存的时候unicode与其他各个国家的编码都有对应关系

4.数据由内存保存到硬盘

1.内存中的unico格式二进制数字  >>>编码(encode)>>>  utf-8格式的二进制数据

5.硬盘中的数据由硬盘读到内存

        1.硬盘中的uft-8格式的二进制数据 >>>解码(decode)>>> 内存中unicode格式的二进制数据

6.pycharm终端用的是utf-8格式

7.windows终端采用的是gbk

总结:

x = ‘牛’

res1 = x.encode('utf-8') #将unicode编码成utf-8的二进制数据

res2 = res1.decode('utf-8')#将硬盘中的utf-8格式的二进制数据解码成unicode

二、文件执行

1.什么是文件?

操作系统提供给用户操作复杂硬件的简易接口

2.为什么操作文件?

人或者应用程序需要永久的保存数据

3.通过python代码操作文件

f = open(r'D:\xxxx\xxxx\xxx') #向操作系统发送请求,打开某个文件(‘r’用来取消转义)

应用程序想要操作计算机硬件,必须通过操作系统来简洁的操作

4.操作流程

f = open(r'D:\xxxx\xxxx\xxx') 

print(f,read()) #windows操作系统默认的编码是gbk

f.read()#向操作系统转发请求,读取文件内容

f.closed()#告诉操作系统,关闭打开的文件

5.打开多文件

ith open(r'D:\Python项目\day07\a.txt',encoding='utf-8') as f ,\

open(r'D:\Python项目\day07\b.txt',encoding='utf-8') as f1: # f仅仅是一个变量名 你把它看成

一个遥控器

print(f)

print(f.read())

print(f1)

print(f1.read())

6.文件处理模式

1.r模式

with open(r'D:\ZZJ\zzj.txt',mode = 'r',encoding= 'utf-8') as f: #mode参数可以不加,不写的话默认是文本文件,t不写默认就是t

可读、不可写

with open(r'D:\ZZJ\zzj.txt',mode = 'rb',encoding= 'utf-8') as f:

以二进制的形式读出

r模式在打开的文件不存在的情况下,会直接报错。

2.w模式

w模式:w模式一定要慎用

1.文件不存在的情况下,自动创建该文件

2.当文件存在时,会清空该文件内容后再写入

with open(r'xxx.txt',mode='w',encoding='utf-8') as f:

还可以以列表形式写入:

# l = ['xxx','xxx,'xxx']

f.writelines(l)

3.a模式

1.当文件不存在的情况下,自动创建该文件

2.当文件存在的情况下,不会清空文件内容,文件的光标会移动到文件的最后,添加新内容。

with open(r'yyy.txt',mode='a',encoding='utf-8') as f:

 

 

 

   

posted @ 2019-07-05 20:41  朱朱朱朱朱  阅读(274)  评论(0编辑  收藏  举报