当前位置:  开发笔记 > 编程语言 > 正文

如何重构使用argparse在另一个Python脚本中可调用的脚本?

如何解决《如何重构使用argparse在另一个Python脚本中可调用的脚本?》经验,为你挑选了0个好方法。

我有一个脚本找到测试名称,并在我们公司广泛使用.它在命令行上运行,如下所示:

find_test.py --type  --name 

在脚本内部相当于:

import argparse

parser = argparse.ArgumentParser(description='Get Test Path')
parser.add_argument('--type',      dest='TYPE',      type=str,            default=None,  help="TYPE [REQUIRED]")
parser.add_argument('--name',      dest='test_name', type=str,            default=None,  help="Test Name (Slow)")
parser.add_argument('--id',        dest='test_id',   type=str,            default=None,  help="Test ID (Fast)")
parser.add_argument('--normalise', dest='normalise', action="store_true", default=False, help="Replace '/' with '.' in Test Name")
args = parser.parse_args()

(不确定所有这些论点的作用,我个人只使用前两个).然后,这些行由使用这些参数的代码继续.

我想重构这个脚本,以便我可以将其作为模块导入,但也保留其命令行功能 - 因为很多人使用这个脚本,并且在我们的一些csh脚本中也调用它.

到目前为止我已经重构了它,就像这样:

def _main():
    

if __name__ == "__main__":
    _main()

这仍然可以从命令行运行.但我不知道如何在我的父脚本中将相关开关的参数传递给它.

如何进一步重构,然后在父脚本中调用它?这可能吗?

我也不愿意使用我读过的docopts是新的argparse,除非必要 - 即不能用argparse完成,因为它没有在公司范围内安装,这可能是一个艰巨的过程.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有