使用argparse实现无限输入

3

假设我有一个合并函数,可以将任意数量的文件合并为一个文件。这需要变量数量的输入。因此我的问题是,如何从argparser中接收参数,并考虑2个或更多输入文件的情况?

1个回答

6
你可以使用nargs='+'nargs='*'来收集参数并将其放入列表中。
import argparse
the_parser = argparse.ArgumentParser()
the_parser.add_argument('--input_files',nargs='+')
args = the_parser.parse_args()

如果您想使用subprocess从另一个脚本中进行调用,则可以执行以下操作:
import subprocess
the_files = ['to_merge_1.txt', 'to_merge_2.txt']
cmdlnargs = ['python','argparse_example.py','--input_files']
cmdlnargs.extend(the_files)

subp = subprocess.Popen(cmdlnargs,
                        stdout=subprocess.PIPE, 
                        stdin=subprocess.PIPE,
                        stderr=subprocess.STDOUT)    
stdout, stderr = subp.communicate()
print stdout

足够简单,但我该如何运行一个子进程以使用输入作为命令? - user1178682
添加了基本的子进程示例。 - mechanical_meat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接