Python文件进行写操作后立即读出的结果、原因分析、解决方法

  1. 问题引出

在这里插入图片描述
在这里插入图片描述

使用open(‘test.txt’,‘r’) 和open(‘test.txt’)方式读取文件时,发现第一次read读取后,使用readlines()对f 和 f1 读取的结果却不一样

原因分析:读写时有一个文件指针,数据从文件指针所在位置开始读写。上述程序通过write对文件进行写操作,此时文件指针已经在文件的尾部。

那为什么使用read和readlines会有不一样的运行结果呢?

read()在当前指针处开始读,而当前指针在文件尾部,其后为空,所以read()每次运行均为空;

readlines()是回文件开头读取内容;

  1. 解决办法

让文件指针指向需要的位置,Python提供了seek()函数
语法:file_obj.seek(offset,whence = 0)
[offset: 偏移量]
[whence: 起始位置 0——文件头部(默认值);1——当前位置;2——文件尾部]

在第一次read读取之后加上seek(0)即可

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值