使用argparse导入脚本的python

use*_*318 4 python import argparse

A =一个脚本,其结构由命令行调用,其中包含由python argparse库内部解析的选项.B =另一个应该调用A内部函数的脚本.

我相信在B中导入A是我需要的东西,但它返回了我的使用选项,然后退出python解释器.

有没有办法保存A并将其导入B传递给args?或者我应该重写避免解析器使用?

Mat*_*euW 8

在脚本A中,在解析参数和执行A作业之前检查您是否是"主脚本",否则当您只需要使用A作为库时,也会运行此脚本.

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-k", dest = "foo",  action='store_true')
    args = parser.parse_args()
    # do things...
Run Code Online (Sandbox Code Playgroud)

  • 我称之为"dunder模式",因为有很多双重字符.通常,在给定文件的主体中有函数和类,在底部放置这个`if __name__ ...`,其中包含前面行中定义的"main"函数.当您将脚本作为脚本运行而不是将其作为python模块导入时,此条件部分仅阻止执行预期会发生的操作. (2认同)