小编典典

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

python

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

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

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


阅读 247

收藏
2021-01-20

共1个答案

小编典典

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

loops = 0
while loops < 5:
    file = open("somefile.txt")
    for line in file:
        print(line)
    loops = loops + 1
    file.close()
2021-01-20