【发布时间】:2019-09-22 18:33:23
【问题描述】:
我有一个名为 test1.py 的简单脚本。
#!/usr/bin/env python
from argparse import ArgumentParser
def cmdlineparse():
parser = ArgumentParser()
parser.add_argument("-tid", dest="CHEMBL_TARGET_ID", required=True, type=str)
parser.add_argument("-molfile", dest="XTEST_MOLFILE", required=False, type=str)
args=parser.parse_args()
return args
if __name__ == '__main__':
args = cmdlineparse()
print("The given CHEMBL_TARGET_ID is %s" % args.CHEMBL_TARGET_ID)
print("The given XTEST_MOLFILE is %s" % args.XTEST_MOLFILE)
通常,我是这样执行的./test1.py -tid CHEMBL8868 -molfile ligands.sdf。
我想做的是在名为test2.py 的第二个脚本中多次执行它。最简单的解决方案是使用subprocess.call 或等效的名称来调用它。
subprocess.call("./test1.py -tid CHEMBL8868 -molfile ligands.sdf".split(), shell=True, executable='/bin/bash')
但是,我想以更优雅的方式来做,即将它作为模块导入并将值传递给argparse。有人可以告诉我怎么做吗?
【问题讨论】:
-
parse_args()从列表sys.argv获取值,但您可以使用自己的列表parse_args(my_list)
标签: python parameter-passing argparse