为什么这不是一个无限循环?

时间:2018-10-28 20:46:15

标签: python python-3.x for-loop

file = open("fileWithNumbers","r")

numList = [1]

for num in numList :
  for line in file :
    line = line.rstrip()
    numList.append(line)

file.close()

我目前正在编写大学作业,但我不知道如何使这段代码成为无限循环。在文本文件上完成一次迭代后,外部for循环似乎结束了。

我期望这段代码可以无限运行,因为它正在遍历增加每次迭代的列表。

实际上,这与我在实际代码中处理的场景并不完全相同,但是它可以完美地恢复我遇到的问题。我需要外部for循环不以内部循环的一次迭代结束。非常感谢!

3 个答案:

答案 0 :(得分:0)

您要附加一个列表,而不是文件。因此,您的原始文件(您要迭代的文件)永远不会更改。

答案 1 :(得分:0)

对于无限循环,请使用while循环:

while True:
    # some python code that I want 
    # to keep on running forever

以您的情况

file = open("fileWithNumbers","r")

numList = [1]

while True:
  for line in file:
    line = line.rstrip()

此外,您将附加到numbers并在numList上进行迭代

答案 2 :(得分:0)

您的文件在第一次迭代后结束。如果您希望它是inifint,则需要再次读取文件或遍历列表

# file = open("fileWithNumbers","r") # see line below ...
file_lines = list(open("fileWithNumbers","r"))

numList = [1]

for num in numList :
   for line in file_lines: # this list will always contain the numbers, not a file that ends ...
       line = line.rstrip()
       numList.append(line)

file.close()

我希望反例可以解释它。