python读写文件

今天想读写文件,使用了a+,但是发现读取失败,再查找解决办法时,发现是因为指针的问题。

python 打开文件的常用模式有:

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

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

  • r+, 读写【可读,可写】【可理解为先读后写,不擦除原文件内容,指针在0】
  • w+,写读【可读,可写】【可理解为先写后读,擦除原文件内容,指针在0】
  • a+, 写读【可读,可写】【不擦除原文件内容,但指针直接到最后,读取原内容先重置指针】
with open('./text1.txt','a+') as f:
    print( '打开文件时指针位置:',f.tell() )
    lines = f.read()
    print('第一次读取内容lines:',lines) #为空,因为指针在最后
    f.seek(0) #重置指针从0开始
    print( '重置后指针位置:',f.tell() )
    lines = f.read() 
    print('第二次lines:',lines) #输出内容
    print( '读取完文件之后后指针位置:',f.tell() ) #读取文件时,指针会变化
    lines = f.read() 
    print('第三次lines:',lines) #输出内容为空,指针后没有数据
    f.write('\n000')
    print( '写入完文件之后后指针位置:',f.tell() )
    lines = f.read() #没有数据
    print('lines:',lines) 

ps:无论指针指在哪,当写入时自动从最后追加内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值