Google 出品:简洁优雅的 Python 命令行生成工具

上一次我们推荐了使用 Go 语言的命令行工具 CLI 生成框架:Cobra,需要提前通过生成代码的方式,有一定的后期修改和维护成本。 今天要推荐一个 Python 的命令行工具生成框架 google/python-fire,非常的简洁和优雅。在我不知道这个框架之前我是通过如下简单的代码解决的。

import sys

def foo():
    print 'foo'

def bar():
    print 'bar'

def main():
    foo()
    bar()

if __name__ == '__main__':
    func = sys.argv[1] if len(sys.argv) == 2 else 'main'
    locals()[func]()

可以看出只能处理很简单的一些场景,而且不能处理命令行参数的传递。 使用 google/python-fire 后问题都解决了,而且非常的简洁。

import fire

def hello(name="World"):
  return "Hello %s!" % name

if __name__ == '__main__':
  fire.Fire(hello)

# 通过命令行调用
$ python hello.py  # Hello World!
$ python hello.py --name=David  # Hello David!
$ python hello.py --help  # Shows usage information.

通过该工具可以很方便的开发和调式 Python 代码,同时可以很容易将其他人的 Python 代码转换成 CLI 工具,使得和 Bash 集成变得更加的简单。另外这个工具是 Google 出品,当然必属精品,点击查看详细的使用文档

项目地址:https://github.com/google/python-fire

推荐阅读


更多精彩请扫码关注如下公众号。

Written on January 1, 2020