阅读有关fileinput的文档,但我在某个地方犯了一个基本错误,我希望有人能指出我的错误。
循环浏览文件中的列表:
finput = fileinput.input('file.txt')
for line in finput:
// do something
finput.next()
else:
finput.close()
在它抛出的第二个循环中
raise RuntimeError, "input() already active"
think.next()是移动到第二行的正确函数
Tags:
当试图在由
fileinput.input
返回的同一文件的重新打开的实例上循环时,如果fileinput.input
返回的上一个实例仍未耗尽或显式关闭,则会引发此错误。因此,不能同时使用fileinput.input
的多个实例实例。来自^{} :
输出:
您可以使用^{} 一次使用多个实例。此代码工作正常:
注意,正如@Tim Pietzcker在他的回答中已经指出的那样,
fileinput
实例上的for循环已经一次返回一行(在您的代码中,变量line
是实际的行),因此,那里不需要.next
调用。在循环中调用.next
可能会在文件对象耗尽时引发StopIteration
错误。for
循环已经逐行迭代,因此调用.next()
会导致问题。把那条线去掉。相关问题 更多 >
编程相关推荐