使用argparse的无限输入

时间:2012-02-17 22:37:54

标签: python argparse

所以说我有一个合并功能。我可以将任意数量的文件合并为一个。这需要可变数量的输入。所以我的问题是,从argparser中获取参数,我如何解释2个或更多输入文件的可能性?

1 个答案:

答案 0 :(得分:6)

您可以使用nargs='+'nargs='*' 这些会将args收集到一个列表中。

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