fire.Fire(lambdaobj:type(obj).__name__) 如果有刚学python的小伙伴,记得一定要学一下lambda函数,在这里我可以转化为普通写法。 importfiredeftest(obj):returntype(obj).__name__if__name__ =='__main__': fire.Fire(test) 通过简单的一行代码来看一下各种数据类型如何通过命令行传参: $python exampl...
使用fire.Fire(hello)即可非常简单快速地实现命令功能,这个命令行就接受--name选项,不提供时使用默认值 "World",提供时就按提供的值来。 可在命令行中执行下列命令: $ python hello.py Hello World! $ python hello.py --name=Xj Hello Xj! $ python hello.py --help INFO: Showing help with the command...
实现子命令最简单的方式就是定义若干个函数,每个函数名隐式就是子命令名称,然后调用fire.Fire()变将当前模块所有的函数解析为对应的子命令的处理函数。 importfiredefadd(x,y):returnx+ydefmultiply(x,y):returnx*yif__name__=='__main__':fire.Fire() 然后我们就可以在命令行中这么调用。 $ python exa...
fire是一个由 Google 开源的 Python 库,它能自动将 Python 代码转换成命令行接口(Command Line Interface,CLI)。fire库极大地简化了从 Python 函数或类生成命令行工具的过程。 特性 易用性:fire是为了简化命令行工具的创建而设计的,它可以自动从任何 Python 对象生成命令行接口。 自动生成帮助:fire自动生成命令和帮...
类使用 fire.Fire() 这里把类而非实例对象作为fire.Fire的入参: 代码语言:javascript 复制 fire.Fire(Calculator) 传递类和实例对象的基本作用是一样的,但传递类还有一个额外的特性:如果构造函数中定义了参数,那么这些参数都会作为整个命令行程序的选项参数。
fire.Fire(hello) 这时候重新运行: python3demo1.py --help 就可以看到结果变成了如下内容: NAME demo1.py SYNOPSIS demo1.py NAME POSITIONAL ARGUMENTS NAME NOTES You can also use flagssyntaxfor POSITIONAL ARGUMENTS 这时候我们发现 name 这个参数就变成了必传参数,我们必须在命令行里指定这个参数内容,调用...
工作中总是需要在调用python 脚本的时候把一些变量传进去,比如python my_script.py arg1 arg2. 看了一些网上的方案之后觉得sys.args 传参太简单了,没有参数说明,argparse的参数说明又要自己写,比较麻烦。 Fire Fire 是Google 开发的一款自动生产python脚本CLI的python lib。使用方法很简单。
Python 中用于生成命令行接口(Command Line Interfaces, CLIs)的工具已经有一些了,例如已经成为 Python 标准库的 argparse 和第三方的 click ,这些都是很不错的工具。但是这些工具为 Python 程序生成 CLIs 的时候稍显麻烦,需要增加的地方比较多,过程稍显繁琐。今天介绍的这个工...
python实现脚本命令行的库有: 内置库sys 内置库argparse 第三方库click 第三方库fire 内置库sys sys.argv 包含命令行参数列表,第一个参数是文件名 sys_demo.py import sys def add(a, b): return a + b if __name__ == '__main__': ret = add(sys.argv[1], sys.argv[2]) ...