为了账号安全,请及时绑定邮箱和手机立即绑定

为什么第二个print(f.tell()会报错

f = open(r'C:\Users\Administrator\Desktop\1.py',"r")
print(f.read(3))
print(f.tell())
print(f.readlines(3))
print(f.tell())
print(f.readline())
f.close()

#

正在回答

3 回答

如果文件内容为:

12345

ABCDE

如果重头开始读文件,f.readlines(size) 0<size<=5 读取第一行,5<size<=10 读取一二行。   

两次f.readlines(5) 分别读取一 、二 行。

size在0-5之间。实际读取的是一行(而且换行符也会被读取,实际换行又占用两个字符)。无法确定在读到文件的哪个位置,也就无法告诉(tell)了。

0 回复 有任何疑惑可以回复我~

readlines(size)的参数size到底起什么作用?

读取文件的大小,如果size大于缓冲区的大小,则读取缓冲区大小的数据;    如果size小于缓冲区的大小,读取size大小的数据,但不是完全的等于size的大小,一般读取比size大的整行的数据。    你的1.py文件大小肯定大于3了。

0 回复 有任何疑惑可以回复我~
f.readlines(3)这个加参数。不加f.readlines()就能读到最后(读取文件所有行)。去掉3能正常运行。


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么第二个print(f.tell()会报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信