一:读写模式
- a模式 只追加模式
- 路径不存在:自动创建
with open(r'a.txt','a',encoding='utf8') as f:
pass - 路径存在:不会清空文件 在文件末尾添加内容
with open(r'a.txt', 'a', encoding='utf8') as f:
f.write('\n今天周四了 马上又要放假了 好开心!')
小总结
我们所学习的r w a读写模式都只能操作文本文件
### 二:文件操作方式
- 1.读系列
with open(r'a.txt', 'r', encoding='utf8') as f:
print(f.read()) # 一次性读取文件内所有的内容
print(f.readline()) # 每次只读文件一行内容
print(f.readlines()) # 读取文件所有的内容 组织成列表 每个元素是文件的每行内容
print(f.readable()) # 判断当前文件是否具备读的能力 - 2.写列表
with open(r'a.txt', 'w', encoding='utf8') as f:
f.write('克服一切困难 奥利给!') # 往文件内写入文本内容
f.write(123) # 写入的内容必须是字符串类型
f.writelines(['jason','kevin','tony']) # 可以将列表中多个字符串元素全部写入
print(f.writable()) # True 是否具备可写的能力
print(f.readable()) # False 是否具备可读的能力
f.flush() # 直接将内存内文件数据刷到硬盘 相当于ctrl+s 保存
三:### 文件优化操作
with open(r'a.txt', 'r', encoding='utf8') as f:
print(f.read()) # 一次性读取文件内所有的内容
print(f.read()) # 一次性读取文件内所有的内容
print(f.read()) # 一次性读取文件内所有的内容
*
1.一次性读完之后 光标停留在了文件末尾 无法再次读取内容
2.该方法在读取大文件的时候 可能会造成内存溢出的情况
解决上述问题的策略就是逐行读取文件内容
* for line in f:
print(line)
文件变量名f支持for循环 相当于一行行读取文件内容
《涉及到多行文件内容的情况一般都是采用for循环读取》
四:文件操作模式
t 文本模式
1.默认的模式
r w a >>> rt wt at
2.该模式所有操作都是以字符串基本单位(文本)
3.该模式必须指定encoding参数
4.该模式只能操作文本文件
b 二进制模式
1.该模式可以操作任意类型的文件
2.该模式所有操作都是以bytes类型(二进制)基本单位
3.该模式不需要指定encoding参数
rb wb ab
五:简易的拷贝工具
支持所有的文件类型