Python拒绝多次遍历文件中的行

Dan*_*cus 6 python

我正在编写一个程序,要求我多次遍历文件的每一行:

loops = 0
file = open("somefile.txt")
while loops < 5:
    for line in file:
        print(line)
    loops = loops + 1
Run Code Online (Sandbox Code Playgroud)

为了简洁起见,我假设我总是需要遍历文件并打印每行5次.该代码与我在程序中实现的较长版本具有相同的问题:文件只迭代一次.之后,print(line)文件什么都不做.为什么是这样?

cha*_*id1 3

这是因为该file = open("somefile.txt")行仅在循环之前出现一次。这将创建一个指向文件中一个位置的光标,因此当到达第一个循环的末尾时,光标位于文件的末尾。将其移动到循环中:

loops = 0
while loops < 5:
    file = open("somefile.txt")
    for line in file:
        print(line)
    loops = loops + 1
    file.close()
Run Code Online (Sandbox Code Playgroud)