我从一些 git repo 中检索了一个 python 项目。要运行此项目,必须通过命令行使用正确的参数启动一个文件。这是一个例子:#! /usr/bin/env pythonimport argparseparser = argparse.ArgumentParser(description='Description')parser.add_argument('arg1')parser.add_argument('arg2')# %%def _main(args): # Execute the code using argsif __name__ == '__main__': _main(parser.parse_args())我想在我自己的项目中使用这段代码,因此,使用一组预定义的参数从另一个 python 文件调用主函数。我找到了不同的方法,但我不知道这样做的好方法是什么。使用 os 包调用文件,但对我来说似乎是一种不好的做法。重构文件以便主函数采用所需的参数(并摆脱 args 对象),但这意味着命令行调用将不再起作用。其他 ?
2 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
导入otherprogram到您自己的程序中。
otherprogram._main()从您自己代码中的适当位置调用,并传递一个argparse.Namespace实例。
argparse如果需要,您可以使用自己的调用来构建它,或者只是以其他方式构建值。
呼唤远方
TA贡献1856条经验 获得超11个赞
只要确保 args 包含具有正确属性的对象,您实际上就可以调用 main 方法。考虑这个
import argparse
def _main(args):
print(args.arg1)
_main(argparse.Namespace(arg1='test1', arg2='test2'))
在另一个文件中,您可以这样做:
from some_git_repo import _main
from argparse import Namespace
_main(Namespace(arg1='test1', arg2='test2'))
添加回答
举报
0/150
提交
取消
