Python 3 - 仅迭代当前打开的文件

时间:2016-07-04 19:01:35

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

我在系统中打开了两个文件。用户提供一些输入,然后脚本选择要关闭的文件。 我必须关闭其中一个文件。

但是,我稍后会有一个for循环。由于我不知道哪个文件将保持打开状态,并且我需要迭代其中一个文件的行和列,我想知道是否有一种方法可以动态放置迭代器(这将是文件)。

以下是代码:

with open("file1.csv","r") as a, open ("file2.csv","r") as b:

read_file_no_1 = csv.reader(a); read_file_no_2 = csv.reader(b)

Question=input(Questions[0]).title()
if Question =='something': read_file_no_1.close()
elif Question == 'something_else': read_file_no_2.close()
else: print("Nul")

for i,x,y in zip(range(1,23),read_file_no_2,_file_no_1):        
    Question=input(Questions[i].format(Question,x))
    if any(iterator in Question.split() for iterator in (x,y)):
        print(Question)
    else:
        print("{} {}".format(str(Question),"unknown")

非常感谢任何帮助。

谢谢。

主芯片

修改

我上传了整个代码。它并不漂亮,它意味着要成为一个概念证明。

1 个答案:

答案 0 :(得分:0)

仅在用户选择后创建csv对象:

with open("file1.csv","r") as a, open ("file2.csv","r") as b:
    Question=input(Questions[0]).title()
    if Question =='something':
        r = csv.reader(b)
        a.close()
    elif Question == 'something_else': 
        b.close()
        r = csv.reader(a)
    else: 
         r = csv.reader(other)

    for i,x,y in zip(range(1,23), r):