Python 最佳实践.从另一个 python 文件调用命令行 python 文件



我从某个git存储库中检索了一个python项目。若要运行此项目,必须使用正确的参数通过命令行启动一个文件。这是一个例子:

#! /usr/bin/env python
import argparse
parser = argparse.ArgumentParser(description='Description')
parser.add_argument('arg1')
parser.add_argument('arg2')
# %%
def _main(args):
    # Execute the code using args

if __name__ == '__main__':
    _main(parser.parse_args())

我想在我自己的项目中使用此代码,因此,使用一组预定义的参数从另一个 python 文件调用 main 函数。

我找到了不同的方法,但我不知道什么是好方法。

  • 使用 os 包调用文件,但对我来说似乎是一种不好的做法。
  • 重构文件,以便 main 函数获取所需的参数(并摆脱 args 对象(,但这意味着命令行调用将不再有效。
  • 其他?

otherprogram导入到您自己的程序中。

从您自己的代码中的适当点调用otherprogram._main(),并向其传递argparse.Namespace实例。

如果需要,您可以使用自己的 argparse 调用来构建它,或者只是以其他方式构造值。

只要

确保 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'))

最新更新