python库使用Fire库生成命令行参数

 更新时间:2024年02月06日 09:09:48   作者:wang_yb  
Python Fire是一个开源库,能把Python对象转换为命令行界面,Fire库是一个非常有用的工具,它可以帮助开发人员创建命令行界面,并且可以将任何Python对象转换为命令行界面,这篇文章主要介绍了python库使用Fire库生成命令行参数,需要的朋友可以参考下

牛逼的python库-使用Fire库生成命令行参数

Python Fire是一个开源库,它可以将任何Python对象转换为命令行界面。它可以帮助开发人员快速创建命令行界面,而无需编写大量的代码。Fire的主要功能是将Python对象转换为命令行界面,这使得开发人员可以使用命令行界面来调用Python函数。

库的使用非常简单。首先,您需要安装Fire库。您可以使用pip命令来安装它:

pip install fire

安装完成后,您可以将任何Python对象转换为命令行界面。例如,您可以将一个简单的Python函数转换为命令行界面:

import fire
def hello(name='world'):
    return f'Hello {name}!'
if __name__ == '__main__':
    fire.Fire(hello)

在上面的示例中,我们定义了一个名为hello的函数,并使用Fire库将其转换为命令行界面。现在,您可以在终端中运行以下命令:

python hello.py --name=John

这将输出以下内容:

Hello John!

Fire库还支持将类转换为命令行界面。例如,您可以将一个简单的类转换为命令行界面:

import fire
class Calculator:
    def add(self, x,):
        return x + y
if __name__ == '__main__':
    fire.Fire(Calculator)

在上面的示例中,我们定义了一个名为Calculator的类,并使用Fire库将其转换为命令行界面。现在,您可以在终端中运行以下命令:

python calculator.py add --x=2 --y=3

这将输出以下内容:

5

总之,Fire库是一个非常有用的工具,它可以帮助开发人员快速创建命令行界面。它非常易于使用,并且可以将任何Python对象转换为命令行界面。

补充:

Python Fire:更加灵活的命令行参数

之前介绍过PythonFire库,一个用来生成命令行工具的的库。
请参考:Python Fire:自动生成命令行接口

今天,针对命令行参数,补充两种更加灵活的设置方式。

1. *args 型参数

*args型的参数可以接受任意长度的参数。
比如,模拟一个学校发送通知的功能:

import fire
def notions(school, *names):
    for name in names:
        print(f"[{school} 通知] hello {name}")
if __name__ == "__main__":
    fire.Fire(notions)

使用起来很灵活,

$  python.exe .\fire-sample.py NJ大学 小红 小李 小张 小华
[NJ大学 通知] hello 小红
[NJ大学 通知] hello 小李
[NJ大学 通知] hello 小张
[NJ大学 通知] hello 小华
$  python.exe .\fire-sample.py --school NJ大学 小红 小李 小张
[NJ大学 通知] hello 小红
[NJ大学 通知] hello 小李
[NJ大学 通知] hello 小张
$  python.exe .\fire-sample.py --school NJ大学 小红 小李 小张 小华
[NJ大学 通知] hello 小红
[NJ大学 通知] hello 小李
[NJ大学 通知] hello 小张
[NJ大学 通知] hello 小华
$  python.exe .\fire-sample.py 小红 小李 --school NJ大学 小张 小华
[NJ大学 通知] hello 小红
[NJ大学 通知] hello 小李
[NJ大学 通知] hello 小张
[NJ大学 通知] hello 小华

从上面使用的示例可看出,

  • 可以不输入参数名称(比如第一个例子),按照顺序第一参数赋值给school,其余的赋值给*names
  • *names参数支持不定长度的值
  • school参数指定参数名的话,可以放在任意的位置(比如上面第四个例子)。

2. **kwargs 型参数

**kwargs 型参数也是不定长度的,和*args型参数不同的地方在于,
使用**kwargs型参数时,需要指定参数名称

比如,模拟一个显示学生成绩的功能:

import fire
def scores(cls, **students):
    for k, v in students.items():
        print(f"[{cls} 成绩] {k}: {v}")
if __name__ == "__main__":
    fire.Fire(scores)

使用示例如下:

$  python .\fire-sample.py 初三1班 --小红 98 --小李 89 --小王 100
[初三1班 成绩] 小红: 98
[初三1班 成绩] 小李: 89
[初三1班 成绩] 小王: 100
$  python .\fire-sample.py --小红 98 --小李 89 --小王 100  初三1班
[初三1班 成绩] 小红: 98
[初三1班 成绩] 小李: 89
[初三1班 成绩] 小王: 100
$  python .\fire-sample.py --小红 98 --小李 89 --小王 100 --cls 初三1班
[初三1班 成绩] 小红: 98
[初三1班 成绩] 小李: 89
[初三1班 成绩] 小王: 100

cls参数可以不指定名称,也可以放在任意位置上。
**students参数则必须指定参数名称,但参数名称不固定,参数的个数也不固定。

3. 总结

*args型和**kwargs型参数可以有效的缓解命令行工具灵活性不足的问题。
开发命令行工具时,根据自己的场景,使用这两种类型的参数可让命令行工具的接口更加简洁灵活。

到此这篇关于Python Fire:更加灵活的命令行参数的文章就介绍到这了,更多相关Python Fire:更加灵活的命令行参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 对pandas读取中文unicode的csv和添加行标题的方法详解

    对pandas读取中文unicode的csv和添加行标题的方法详解

    今天小编就为大家分享一篇对pandas读取中文unicode的csv和添加行标题的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python操作excel文件并输出txt文件的实例

    python操作excel文件并输出txt文件的实例

    今天小编就为大家分享一篇python操作excel文件并输出txt文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Pandas导入导出excel、csv、txt文件教程

    Pandas导入导出excel、csv、txt文件教程

    Pandas 是一个强大的数据分析和处理库,可以用来读取和处理多种数据格式,本文主要介绍了Pandas导入导出excel、csv、txt文件教程,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • python如何读取bin文件并下发串口

    python如何读取bin文件并下发串口

    这篇文章主要介绍了python如何读取bin文件并下发串口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 教你用python将数据写入Excel文件中

    教你用python将数据写入Excel文件中

    Python作为一种脚本语言相较于shell具有更强大的文件处理能力,下面这篇文章主要给大家介绍了关于如何用python将数据写入Excel文件中的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Python读取sqlite数据库文件的方法分析

    Python读取sqlite数据库文件的方法分析

    这篇文章主要介绍了Python读取sqlite数据库文件的方法,结合实例形式分析了Python引入sqlite3模块操作sqlite数据库的读取、SQL命令执行等相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Python使用Pandas对csv文件进行数据处理的方法

    Python使用Pandas对csv文件进行数据处理的方法

    这篇文章主要介绍了Python使用Pandas对csv文件进行数据处理的方法,本文通过实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 在python中对变量判断是否为None的三种方法总结

    在python中对变量判断是否为None的三种方法总结

    今天小编就为大家分享一篇在python中对变量判断是否为None的三种方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • pytorch之torchvision.transforms图像变换实例

    pytorch之torchvision.transforms图像变换实例

    今天小编就为大家分享一篇pytorch之torchvision.transforms图像变换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python设计模式之观察者模式实例

    Python设计模式之观察者模式实例

    这篇文章主要介绍了设计模式中的观察者模式Python实例,需要的朋友可以参考下
    2014-04-04

最新评论