创建人工解析的参数

时间:2017-11-13 11:47:58

标签: python

我的节目" program.py"形式如下:

if __name__=='__main__':
     args = parse_args()
     main_function(args)

但是,如果我将program.py作为模块导入并运行program.main_function,我如何将解析后的参数结构作为参数传递给main_function?

这是parse_args()

的定义
 def parse_args():
     parser=argparse.ArgumentParser()
     parser.add_argument(...)
     args=parser.parse_args()
     return args

1 个答案:

答案 0 :(得分:0)

如果我们从标准库中讨论argparse.parse_args,只需明确传递参数列表。

例如,如果从命令行使用以下参数调用程序:

program --verbose --mode=3 file1 file2

shell将命令行拆分为五个单词,程序名称及其四个参数。这些内容存储在sys.argv

直接从Python实现相同的效果:

 args = parse_args(['--verbose', '--mode=3', 'file1' , 'file2'])
 main_function(args)

UPDATE - parse_args修改:

 def parse_args(arglist=None):
     parser=argparse.ArgumentParser()
     parser.add_argument(...)
     args=parser.parse_args(arglist)
     return args