在Python中能嵌套两个fileinput吗?
我需要对fileX中的每一行,去检查fileY中的所有行。
我试过这样做:
for line in fileinput.input('fileX'):
do.fun.stuff(line)
for element in fileinput.input('fileY'):
process(element,line)
但是我遇到了这个错误:
运行时错误:input()已经在使用中
我想我需要说明第二次使用fileinput的时候,和第一次是不一样的。
4 个回答
2
fileinput.input
这个东西使用了一个全局共享的 fileinput.FileInput
实例。如果你直接使用这个类,并创建两个不同的实例,那就应该可以正常工作了。
3
这里是@CatPlusPlus建议的解决方案的明确答案,详细内容可以查看这个链接:
import fileinput
fileX = fileinput.FileInput(files='fileX')
fileY = fileinput.FileInput(files='fileY')
for line in fileX:
do.fun.stuff(line)
for element in fileY:
process(element,line)
3
这个方法不行,因为 fileinput.input()
会创建一个全局实例,所以你不能像你现在这样调用它两次。
那为什么不简单点呢:
for line in open('fileX'):
do.fun.stuff(line)
for element in open('fileY'):
process(element,line)