Вам нужно будет немного реорганизовать ваш скрипт: пусть cmdlineparse
возьмет список аргументов для анализа и определит функцию main
, которая выполняет фактическую работу вместо пустого блока, охраняемого __main__
.
#!/usr/bin/env python
from argparse import ArgumentParser
def cmdlineparse(args):
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(args)
return args
def main(args=None):
args = cmdlineparse(args)
print("The given CHEMBL_TARGET_ID is %s" % args.CHEMBL_TARGET_ID)
print("The given XTEST_MOLFILE is %s" % args.XTEST_MOLFILE)
if __name__ == '__main__':
main()
Без аргумента, main
будет анализировать текущие аргументы командной строки, поскольку значение None
, переданное (в конечном итоге) в parser.parse_args()
, приведет к его анализу sys.argv[1:]
.
Теперь вы можете импортировать test1
и вызывать main
явно столько раз, сколько захотите:
import test1
test1.main(["-tid", "CHEMBL8868", "-molfile", "ligands.sdf"])
test1.main(["-tid", "CHEMBL8293", "-molfile", "stuff.sdf"])
# etc