打开文件的常用模式有:
r , 只读模式默认
w, 只写模式不可读; 不存在则创建; 存在则清空内容;
a, 追加模式可读; 不存在则创建; 存在则只追加内容;
"+" 表示可以同时读写某个文件
r+, 读写可读, 可写可理解为先读后写, 不擦除原文件内容, 指针在 0
w+, 写读可读, 可写可理解为先写后读, 擦除原文件内容, 指针在 0
a+, 写读可读, 可写不擦除原文件内容, 但指针直接到最后, 读取原内容先重置指针
模式 | 可做操作 | 若文件不存在 | 是否覆盖 | 指针位置 |
---|---|---|---|---|
r | 只能读 | 报错 | - | 0 |
r+ | 可读可写 | 报错 | 否 | 0 |
w | 只能写 | 创建 | 是 | 0 |
w+ | 可写可读 | 创建 | 是 | 0 |
a | 只能写 | 创建 | 否,追加写 | 最后 |
a+ | 可读可写 | 创建 | 否,追加写 | 最后 |
可以作个测试文件, 修改下打开模式, 然后输出看下指针区别
f=open(I:\\python\\test\\text.txt,r+)
print(指针在:,f.tell())
- lines=f.read()
- if f.writable():
- f.write(nono\n)
- else:
- print("此模式不可写")
print(指针在:,f.tell())
f.close()
a + 模式下, 虽然能读取, 但指针已到最后, 直接 read, 不会出内容, 可以用 seek() 重置指针
f=open(I:\\python\\test\\text.txt,a+)
print(指针在:,f.tell())
lines=f.read()
print(文件内容是:,lines) #输出为空
- print(seek 0)
- f.seek(0)
print(指针在:,f.tell())
lines=f.read()
print(文件内容是:,lines)
- if f.writable():
- f.write(nono\n)
- else:
- print("此模式不可写")
print(指针在:,f.tell())
f.close()
python 文件操作读写追加的区别
来源: http://www.bubuko.com/infodetail-2495259.html