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()
#
如果文件内容为:
12345
ABCDE
如果重头开始读文件,f.readlines(size) 0<size<=5 读取第一行,5<size<=10 读取一二行。
两次f.readlines(5) 分别读取一 、二 行。
size在0-5之间。实际读取的是一行(而且换行符也会被读取,实际换行又占用两个字符)。无法确定在读到文件的哪个位置,也就无法告诉(tell)了。
读取文件的大小,如果size大于缓冲区的大小,则读取缓冲区大小的数据; 如果size小于缓冲区的大小,读取size大小的数据,但不是完全的等于size的大小,一般读取比size大的整行的数据。 你的1.py文件大小肯定大于3了。
f.readlines(3)这个加参数。不加f.readlines()就能读到最后(读取文件所有行)。去掉3能正常运行。