文件处理
知识储备
(1)三大核心硬件 ①CPU,内存,硬盘 程序最先存放于硬盘,程序启动读取数据用硬盘把数据加载到内存,CPU再从内存读取数据,并执行 1)文本编辑器执行流程 a.启动一个编辑器,编辑器会把数据从硬盘读取到内存,编辑器会把读取到内存的数据显示到屏幕上 2)Python解释器执行流程 a.启动Python解释器,解释器会从硬盘把数据读取到内存,Python解释器开始执行读取的内容,识别语法 (2)文本编辑器执行流程 与 Python解释器执行流程 相同:都是从硬盘读取数据到内存 不同:读取数据后的处理方式,文本编辑器直接显示内容,而Python解释器则要执行代码,识别语法
字符编码
什么是字符编码? 字符编码是人类可以读懂的字符 为什么要字符编码? 因为计算机是用二进制数只有0和1来表达而对于人类则很难懂表达的内容,使用引用字符编码,编码成人类可以看到的内容。 怎么用字符编码? 字符编码分为 ASCII码 , GBK , Unicode,utf-8 ASCII 码: 是字符与数字的对照表 只支持英文 一个英文字符对应1个字节,1个字节表示8位 GBK : 只支持英文,中文 一个英文字符对应1个字节,1个字节表示8位 一个中文字符对应1个字节,1个字节表示16位 Unicode: 万国码是所有语言字符与数字的对应关系,万国码具有兼容性 通常两个字节表示一个字符,个别4个字节,8个字节 Utf-8: 是万国码的压缩版 一个英文字符对应1个字节 一个中文字符对应3个字节
结论:
1.内存固定使用Unicode无论输入任何字符都不会乱码,我们可以改变存入硬盘的格式 2.存取文件,如果编码不正确则出现存乱或者取乱 (1)存乱:编码格式设置成支持文件内容的格式 (2)取乱:文件以什么格式存就以什么格式取
Python3 默认格式: utf-8
Python3 字符串类型默认存 Unicode格式
Python2 默认格式: ASCII
Python2 字符串类型存 在字符串前加一个u
编码与解码
(1)编码:encode 字符串转字节 (2)解码:decode 字节转字符串
文件操作
什么是文件?
文件是指操作系统给用户提供间接操作硬盘的接口
为什么用文件?
文件可以永久保存数据到硬盘中
资源回收与with上下文管理
资源回收:
F = open('a.txt' , "rt", encoding = 'utf-8') Date = F.read() F.close()# 关闭文件(当文件关闭了之后就不能在继续读取数据) del F # 删除文件回收资源(当删除了之后数据则就不存在了)
With 上下文管理 : 可以自动关闭文件
with open('a.txt' , "rt") as f: pass
文件操作模式
t,b模式,这两个模式不能单独使用,必须与r,w,a使用 t(文本文件)模式: 读,写都是以字符串为单位 必须指定encoding = “格式” ①r : 只读(默认) ②w : 只写 1)在文件没有关闭的情况下,会连续写入 2)如果以w 模式打开文件则会清空文件内容 ③a :只追加写 1)以a 模式打开文件,如果文件不存在则会新建文件,存在则在内容末尾追加新写的内容 w与a的区别: 相同:在文件不关闭的情况下,添加的数据则在就的数据后面 不同:w模式打开文件则内容清空,a模式打开文件则不会清空,光标停在内容的末尾 b(字节)模式: 读,写都是以字节为单位 可以读取所有文件 不用指定encoding格式 ④r : 只读(默认) ⑤w : 只写 1)在文件没有关闭的情况下,会连续写入 2)如果以w 模式打开文件则会清空文件内容 ⑥a :只追加写 1)以a 模式打开文件,如果文件不存在则会新建文件,存在则在内容末尾追加新写的内容 w与a的区别: 相同:在文件不关闭的情况下,添加的数据则在就的数据后面 不同:w模式打开文件则内容清空,a模式打开文件则不会清空,光标停在内容的末尾 指针移动以bytes为单位 t模式 read(n),n表示字符的个数 tell():获取文件指针当前位置 Seek(n,模式):n表示字节个数, 模式: a.0,参照开头位置 b.1,参照当前位置 c.2,参照文件末尾 强调:0 模式可以在t模式中使用,1,2在b模式中使用
import time with open('test.txt','rb') as f: f.seek(0,2) while True: line=f.readline() if line: print(line.decode('utf-8')) else: time.sleep(0.2)

浙公网安备 33010602011771号