打开方式
模式 | 可做操作 | 若文件不存在 | 是否覆盖 |
---|---|---|---|
r | 只读 | error | - |
r+ | 读写 | error | 是 |
w | 只写 | 创建 | 是 |
w+ | 读写 | 创建 | 是 |
a | 只写 | 创建 | 是,尾部追加 |
a+ | 读写 | 创建 | 是 |
wb | 以二进制的字符串写入bytes | 创建 | 是 |
rb | 以二进制的方式读取字符串,返回bytes | error | - |
相关常用函数
- f.read() 返回读取内容
- f.write(str) 写入字符串
- f.tell() 返回读写指针位置
- f.seek(0) 移动指针到开头
- f.truncate() 清空文件内容
例子
with open("a.txt", "r", encoding="utf-8") as f:
str1 = f.read() # 读取文件中内容,返回格式str
print(str1)
with open("a.txt", "w", encoding="utf-8") as f:
f.write("aaaaaaa") # 在文件中以str格式写入"aaaaaaa"
with open("a.txt", "a", encoding="utf-8") as f:
f.write("aaaaaaa") # 在文件中以str格式将"aaaaaaa"追加至末尾
with open("a.txt", "rb", encoding="utf-8") as f:
str1 = f.read() # 读取文件中内容,返回格式二进制
print(str1)
with open("a.txt", "wb", encoding="utf-8") as f:
f.write("aaaaaaa") # 在文件中以二进制格式写入"aaaaaaa"
with open("a.txt", "r+", encoding="utf-8") as f:
str1 = f.read() # 读取文件内容并将指针移到至末尾
f.seek(0) # 移动指针到开头,如果不移动指针,清除内容会失效
f.truncate() # 清除文件内容
f.write("aaaaaaa") # 在文件中以str格式重新写入"aaaaaaa"
str2 = f.read() # 读取到的是新内容
with open("a.txt", "w+", encoding="utf-8") as f:
str1 = f.read() # 读取文件内容但是返回是空,因为w+先覆盖文件,也就是说读到的是新的空文件并非是原有的文件
f.write("aaaaaaa") # 在文件中以str格式写入"aaaaaaa"
str2 = f.read() # 读取到的是新内容
- r+模式一开始光标在开始(0)处。当写入write时,操作方式为覆盖,若写入长度大于原文档长度,则全部覆盖掉,光标移到最后位;若写入长度小于原文档长度,
则只覆盖掉光标之后写入长度大小的那部分原文档,光标移到写入长度的位置***读(write)时光标都是移动到相应的写入长度位后。读(read)操作之后光标都会移动到文档最后位。 - w+模式一开始光标在开始(0)处。当写入write时,操作方式位清空,不论写入长度大于还是小于原文档长度,光标都移到文档最后位(此时的文档最后位也就等于写入长度位后)
- a+模式,根据光标位置,write方法在光标位置后添加