回顾03的内容,其难点主要在于文件的操作
在04中,主要复习和巩固对文件操作,加深对其理解。
文件的更多操作
常用打开模式:
r 只能读
r+ 可读可写,不会创建不存在的文件,从顶部开始写,会覆盖之前此位置的内容
w+ 可读可写,如果文件存在,则覆盖整个文件,不存在则创建
w 只能写,覆盖整个文件,不存在则创建
a 只能写,从文件底部添加内容 不存在则创建
a+ 可读可写 从文件顶部读取内容 从文件底部添加内容 不存在则创建
但是实验发现,这里的r+ 可读可写 不会创建不存在的文件 从顶部开始写 会覆盖之前此位置的内容不完整。
另外我们在操作时发现了seek的使用方法
类似于指针,若我们直接执行read()方法,它会将整个文件读取完毕。从而指针指向的位置就是文件末尾。
这样无论执行truncate()还是方法都操作不到相应的内容了。
尝试写一个脚本去copy文件
copyfile.png
执行结果:
FANGQIdeMacBook-Pro:PythonStudy fangqi$ python3 ex12.py ex12_operate.txt
This shell will copy the file ex12_operate.txt to the file ex12_operate.txt_copy
All is down
copy_successfully.png
对truncate的巩固
image.png
- 标注中的print没有打印出来,原因和之前的一样。
在使用了truncate清空了之后的内容,指针的位置没有转移,在执行read()的时候文件之后没有任何内容。因此打印为空行。 - truncate() 可以传入整型的参数,表示从当前位置截取多少位保留,其余的都删掉。