我正在编写一个程序,要求我多次遍历文件的每一行:
loops = 0 file = open("somefile.txt") while loops < 5: for line in file: print(line) loops = loops + 1
为了简洁起见,我假设我总是需要遍历文件并每行打印5次。该代码与我在程序中实现的较长版本存在相同的问题:文件仅迭代一次。之后,该print(line)文件不执行任何操作。为什么是这样?
print(line)
这是因为该file = open("somefile.txt")行在循环之前仅出现一次。这将创建一个指向文件中一个位置的游标,因此,当您到达第一个循环的末尾时,游标位于文件的末尾。将其移入循环:
file = open("somefile.txt")
loops = 0 while loops < 5: file = open("somefile.txt") for line in file: print(line) loops = loops + 1 file.close()