打开文件的常用模式有:
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()
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦