为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻过高山走不出你 2022-01-11 17:23:11
我从一些 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如果需要,您可以使用自己的调用来构建它,或者只是以其他方式构建值。



查看完整回答
反对 回复 2022-01-11
?
呼唤远方

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


查看完整回答
反对 回复 2022-01-11
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号