前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 文件操作读、写、追加的区别

python 文件操作读、写、追加的区别

作者头像
py3study
发布2020-01-07 16:33:10
1.2K0
发布2020-01-07 16:33:10
举报
文章被收录于专栏:python3python3

打开文件的常用模式有:

  • r ,只读模式【默认】
  • w,只写模式【不可读;不存在则创建;存在则清空内容;】
  • a, 追加模式【可读; 不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+, 读写【可读,可写】【可理解为先读后写,不擦除原文件内容,指针在0】
  • w+,写读【可读,可写】【可理解为先写后读,擦除原文件内容,指针在0】
  • a+, 写读【可读,可写】【不擦除原文件内容,但指针直接到最后,读取原内容先重置指针】

模式

可做操作

若文件不存在

是否覆盖

指针位置

r

只能读

报错

-

0

r+

可读可写

报错

0

w

只能写

创建

0

w+

可写可读

创建

0

a

只能写

创建

否,追加写

最后

a+

可读可写

创建

否,追加写

最后

可以作个测试文件,修改下打开模式,然后输出看下指针区别

代码语言:javascript
复制
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()重置指针

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档