使用Python将多个文件写入一个文件,同时从用户处获取输入以选择要扫描的文件

使用Python将多个文件写入一个文件,同时从用户处获取输入以选择要扫描的文件,python,python-3.x,Python,Python 3.x,好的,我有这样的代码: input_name="PLACEHOLDER" while input_name != "": input_name=input('Part Name: ') with open("/pathway/%s.txt" %input_name ,"r") as read_data, open("output.txt","w") as output: if part_name != "": f=input_data.read() print(

好的,我有这样的代码:

input_name="PLACEHOLDER"

while input_name != "":
    input_name=input('Part Name: ')


with open("/pathway/%s.txt" %input_name ,"r") as read_data, open("output.txt","w") as output:

if part_name != "":
    f=input_data.read() 
    print(input_data)

    output.write(part_name)
    output.write(date)
    output.write(y)
else:
    read_data.close()   
    output.close()

我知道它看起来有点坏,但我需要做的是修复循环,因为我需要能够获取多个输入,并在程序结束时将每个输入(文件名)写入同一个文件。我可能需要在这里至少多做一个循环,我只是在寻找正确方向的想法或灵感。我还有其他的格式化代码在里面,这只是一些简单的代码,我想知道我可以运行什么样的循环。感谢所有花时间帮我看这个的人

您可以在执行开始时保持
output.txt
打开,并在用户输入文件名后打开每个文件

示例(未测试):


请记住,如果您使用

中打开文件,则不需要关闭该文件。您只需模拟一些代码,以帮助指导您,这不保证在任何程度上都能正常工作,但应该可以让您开始

首先,让我们将所有零件名存储在列表中,以便稍后可以循环使用它们:

input_name = []
user_input = input('Part Name: ')
while user_input != "":
    input_name.append(user_input)
    user_input = input('Part Name: ')
现在,让我们循环浏览刚刚获得的所有文件:

for (file_name in input_name):
    with open("/pathway/%s.txt" %file_name ,"r") as read_data, open("output.txt","w") as output:
        # any thing file related here
        print(input_data)
        output.write(part_name)
        output.write(date)
        output.write(y)
print("All done")

通过这种方式,您可以一次获得所有用户输入,并一次处理所有数据。

@user357269您在哪里看到无限循环?它不是无限循环,问题是我需要一个建议,告诉我在哪里移动循环,因为在我输入“x”个文件名后,while循环结束,但是这个程序没有一个文件名可以在程序的其余部分获取。@ChaseGarfield我会尽力让您从正确的轨道开始。给我一些来键入一些PSEDOO代码。使用
argparse
而不是没完没了的
input
缩进确实是关闭的
,用于iter中的名称(lambda:input(prompt).strip(),“”):
。。。但这也很可能advanced@JoranBeasley我同意,Python是一种美丽的语言,但学习所有功能需要时间。作为一名最近的Python学习者,我经常发现这一点。这些功能大部分来自函数式编程,这可以改变我们未来的编码方式。这是朝着正确方向的巨大推动!程序在写函数上不断覆盖,因此文件输出中只有一组数据。但是谢谢你有一个好的开始!
for (file_name in input_name):
    with open("/pathway/%s.txt" %file_name ,"r") as read_data, open("output.txt","w") as output:
        # any thing file related here
        print(input_data)
        output.write(part_name)
        output.write(date)
        output.write(y)
print("All done")