今天给大家介绍的项目是来自谷歌开源的
Python Fire
,可以从任何 Python 代码生成命令行接口(command line interfaces (CLIs)),
简单地调用任意 Python 程序中的 Fire 函数以将那个程序自动地转化为 CLI。
截止发稿前,该项目已经在github获得
15600+⭐
,接近
1000次fork
。为什么这个项目这么火爆呢?俩字:『好用』......
Github地址
:
https://github.com/google/python-fire
获取方式:
从 pypi 获取 `pip install fire`
从conda获取`conda install fire -c conda-forge`
从源码安装, clone代码库 & `python setup.py install`
Python Fire有哪些优点:
例子一
1
2
import fire
3
def hello(name="World"):
4
return
"Hello %s!" % name
5
6
if __name__ ==
__main__ :
7 fire.Fire(hello)
8
9
10
11python hello.py
12python hello.py --name=David
13python hello.py --help
例子二
1
2
import fire
3
4
class Calculator(object):
5
"""A simple calculator class."""
6
7
def double(self, number):
8
return
2 * number
9
10
if __name__ ==
__main__ :
11 fire.Fire(Calculator)
12
13
14
15python calculator.py double
10
16python calculator.py double --number=
15
例子三
1
2
import fire
3
class Example(object):
4
def hello(self, name= world ):
5
"""Says hello to the specified name."""
6
return Hello {name}! .format(name=name)
7
8
def main():
9 fire.Fire(Example)
10
11
if __name__ == __main__ :
12 main()
13
14
15
当 Fire 函数运行时,我们的命令被执行。
16仅仅通过调用 Fire,现在我们可以把样本类当作命令行工具来使用。
17
18
19$ ./example.py hello
20Hello world!
21
22$ ./example.py hello David
23Hello David!
24
25$ ./example.py hello --name=Google
26Hello Google!
每个 Fire CLI 都带有交互模式。
因为 Python Fire 十分简单、普遍和强大,我希望能为你的项目提供一个十分有效的库。
英文链接:http://opensource.googleblog.com/2017/03/python-fire-command-line.html
推荐阅读