问答详情
源自:6-5 Python把字符串写入文件

为什么第二个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()

#

提问者:l林l 2021-01-10 15:51

个回答

  • 慕瓜3414965
    2021-01-13 17:15:56

    如果文件内容为:

    12345

    ABCDE

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

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

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

  • 慕瓜3414965
    2021-01-13 16:55:43

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

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

  • 慕瓜3414965
    2021-01-13 16:49:39

    f.readlines(3)这个加参数。不加f.readlines()就能读到最后(读取文件所有行)。去掉3能正常运行。