本节主要内容:
1. 初识⽂件操作
2. 只读(r, rb)
3. 只写(w, wb)
4. 追加(a, ab)
5. r+读写
6. w+写读
7. a+写读(追加写读)
8. 其他操作⽅法
9. ⽂件的修改以及另⼀种打开⽂件句柄的⽅式
主要内容:
⼀. 初识⽂件操作
使⽤python来读写⽂件是⾮常简单的操作. 我们使⽤open()函数来打开⼀个⽂件, 获取到⽂
件句柄. 然后通过⽂件句柄就可以进⾏各种各样的操作了. 根据打开⽅式的不同能够执⾏的操
作也会有相应的差异.
打开⽂件的⽅式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤的是r(只读)模式
⼆. 只读操作(r, rb)
绝对路径和相对路径:
1. 绝对路径:从磁盘根⽬录开始⼀直到⽂件名.
2. 相对路径:同⼀个⽂件夹下的⽂件. 相对于当前这个程序所在的⽂件夹⽽⾔. 如果在同
⼀个⽂件夹中. 则相对路径就是这个⽂件名. 如果在上⼀层⽂件夹. 则要../
读取文件的方法:
f.read(n) n--->>>>n个字符 如果是rb,则n指字节
将文件全部读取出来,弊端是,占内存,如果文件过大,会导致内存崩溃.
f.readline() 一行一行的读,但是读出来的结尾会有一个 ,需要我们用strip()去掉
注意: 读取完的文件句柄一定要关掉 f.close()
三. 写模式(w, wb)
写的时候注意. 如果没有⽂件. 则会创建⽂件, 如果⽂件存在. 则将原件中原来的内容删除, 再
写入新内容
追加模式,a 写入的内容会加在结尾.
五. 读写模式(r+, r+b)
对于读写模式. 必须是先读. 因为默认光标是在开头的. 准备读取的. 当读完了之后再进⾏
写入. 我们以后使⽤频率最⾼的模式就是r+
还有写读(w+),追加读(a+)等不常用,可以自己了解下
其他操作:
1. seek(n) 光标移动到n位置, 注意, 移动的单位是byte. 所以如果是UTF-8的中⽂部分要
是3的倍数.
通常我们使⽤seek都是移动到开头或者结尾.
移动到开头: seek(0)
移动到结尾: seek(0,2) seek的第⼆个参数表⽰的是从哪个位置进⾏偏移, 默认是0, 表
⽰开头, 1表⽰当前位置, 2表⽰结尾
2. tell() 使⽤tell()可以帮我们获取到当前光标在什么位置
显示的是字节数,中文就是3的倍数
3. truncate() 截断⽂件
深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显⽰的是多少. 再写入
或者操作⽂件的时候都是在结尾进⾏的操作.
所以如果想做截断操作. 记住了. 要先挪动光标. 挪动到你想要截断的位置. 然后再进⾏截断
关于truncate(n), 如果给出了n. 则从开头开头进⾏截断, 如果不给n, 则从当前位置截断. 后⾯
的内容将会被删除
九. 修改⽂件以及另⼀种打开⽂件的⽅式
⽂件修改: 只能将⽂件中的内容读取到内存中, 将信息修改完毕, 然后将源⽂件删除, 将新
⽂件的名字改成老⽂件的名字