Python拒绝多次遍历文件中的行[重复]

发布于 2021-01-29 14:57:12

这个问题已经在这里有了答案

第二次遍历文件不起作用 (4个答案)

去年关闭。

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

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

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

关注者
0
被浏览
62
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看