猿问

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

我从一些 git repo 中检索了一个 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 文件调用主函数。


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

  • 使用 os 包调用文件,但对我来说似乎是一种不好的做法。

  • 重构文件以便主函数采用所需的参数(并摆脱 args 对象),但这意味着命令行调用将不再起作用。

  • 其他 ?


翻过高山走不出你
浏览 211回答 2
2回答

扬帆大鱼

导入otherprogram到您自己的程序中。otherprogram._main()从您自己代码中的适当位置调用,并传递一个argparse.Namespace实例。argparse如果需要,您可以使用自己的调用来构建它,或者只是以其他方式构建值。

呼唤远方

只要确保 args 包含具有正确属性的对象,您实际上就可以调用 main 方法。考虑这个import argparsedef _main(args):    print(args.arg1)_main(argparse.Namespace(arg1='test1', arg2='test2'))在另一个文件中,您可以这样做:from some_git_repo import _mainfrom argparse import Namespace_main(Namespace(arg1='test1', arg2='test2'))
随时随地看视频慕课网APP

相关分类

Python
我要回答