python以a+和w+模式无法读到文件内容

1. a+模式无法读到文件内容

虽然官方文档解释“a+”模式可以对文件进行读写,但由于“a”是追加模式,所以打开文件后,指针指向的是文件尾部,读取内容自然为空。

1.1 首先,新建文件abc.txt,并且输入内容“hhhh”,如下图。

1.2 然后,编写python代码如下。

'''
1. 使用a+模式打开文件
2. 通过文件的tell()方法显示指针位置
3. 读取文件内容并显示
4. 向文件写入“xxxx”
'''
with open('abc.txt', 'a+') as file_obj:
    print('指针位置', file_obj.tell())
    print('文件内容', file_obj.read())
    file_obj.write('xxxx')

1.3 运行结果及文件内容如下。

    

1.4 通过以上步骤可知,指针位置处于文件尾部,无法读到内容,但是内容“xxxx”正常追加至文件尾部。

解决方案:在加载文件后,通过seek()方法将指针位置设为文件起始位置,即可读到文件内容,代码和结果如下。

'''
1. 使用a+模式打开文件
2. 将指针位置设为文件起始位置
3. 通过文件的tell()方法显示指针位置
4. 读取文件内容并显示
5. 向文件写入“xxxx”
'''
with open('abc.txt', 'a+') as file_obj:
    file_obj.seek(0)
    print('指针位置', file_obj.tell())
    print('文件内容', file_obj.read())
    file_obj.write('xxxx')

 

 

 

2. w+模式无法读到文件内容

虽然官方文档解释“w+”模式可以对文件进行读写,但会将原始文件内容删除,从头向文件写入内容。

1.1 首先,重置上述代码和文件内容,仅仅将“a+”模式更改为“w+”模式,如下图。

'''
1. 使用w+模式打开文件
2. 通过文件的tell()方法显示指针位置
3. 读取文件内容并显示
4. 向文件写入“xxxx”
'''
with open('abc.txt', 'w+') as file_obj:
    print('指针位置', file_obj.tell())
    print('文件内容', file_obj.read())
    file_obj.write('xxxx')

1.2 运行结果及文件内容如下。

    

1.3 通过以上步骤可知,指针位置处于文件起始位置,无法读到内容,并且最终文件内容为“xxxx”,说明以“w+”模式打开文件后,文件内容即被清空。

解决方案:虽然使用“w+”可读可写,但无法读到内容。

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值