while循环下用readline为什么可以自动的读取下一行,而不是重复读取第一行

# 打开含中文的文本
file=open("test.txt",encoding='utf8')
# 按行读取
while True:
    str=file.readline()
    print(str)
    # 读取完,循环结束
    if len(str)==0:
        break
file.close()
 

如上代码,今天突然有个疑问,为什么while循环下,str = file.readline()后面的循环会自动的读取下一行,而不是一直读取文件的第一行呢?请教下前辈么

当你打开一个文件时就会产生一个类似于指针的东西,每次读完一行就会+1,除非你把这个指针设置为0,即指向第一行,否则会一直读取下一行