探索 Python 库:Python Fire
介绍
在本指南中,您将了解如何实现Python/Google Fire。它是一个由 Google 开发和维护的开源库,最常用于用 Python 代码制作命令行界面。在本指南中,您还将学习如何使用 fire 模块的交互模式。
什么是 Python Fire?
Python Fire是一个模块,您只需一次调用即可将 Python 代码转换为命令行界面。这是一个非常棒的库,它可以轻松地将任何 Python 组件转换为命令行界面。它还可以将模块转换为命令行界面,甚至无需知道其源代码。
之所以称之为 Fire,是因为当你调用Fire时,它会触发(执行)你的命令。
Python Fire 的优点
- 您可以轻松创建命令行界面。
- 它对调试 Python 代码有很大帮助。
- 它是一个非常棒的库,您可以使用它从任何 Python 库生成命令行界面。
- 您无需知道模块的源代码即可调用它。
- 它对于深入探索和挖掘你的代码有很大帮助。
安装 Python Fire
假设您的系统上已经安装了 Python 和 pip,那么安装 Python Fire 不需要任何依赖项。
要使用pip安装,请打开终端并运行以下命令:
pip install fire
要使用conda安装,请打开终端并运行以下命令:
conda install -c conda-forge fire
基本示例
示例一:fire.fire()
现在您已经安装了 Fire 包,请看一下这个第一个示例。
# example.py
# importing python fire module
import fire
# defining a function
def hello(name):
return 'Hello {0}, Have a nice day {0}'.format(name)
if __name__ == '__main__':
# converting our function in a Command Line Interface (CLI).
fire.Fire()
要以命令行界面运行上述代码,请使用以下命令:
python example.py hello john
示例二:fire.fire(function)
修改您的函数,这样您就不需要指定整个函数。
# example.py
# importing python fire module
import fire
# defining a function
def hello(name):
return 'Hello {0}, Have a nice day {0}'.format(name)
if __name__ == '__main__':
# converting our function in a Command Line Interface (CLI).
fire.Fire(hello)
通过终端运行以下命令来运行该程序:
python example.py sachin
示例三:让火变得更简单
# example.py
# importing fire
import fire
name1 = 'Hello my name is sachin'
name2 = 'hello my name is rahul'
fire.Fire()
要运行上述代码,您可以使用以下命令
python example.py name1
python example.py name2
多命令示例
示例一:基本示例
# example.py
# importing fire module
import fire
def hello(name):
return 'Hello how are you {}'.format(name)
def nice(name):
return 'nice day thank you! {}'.format(name)
def bye(name):
return 'bye take care! {}'.format(name)
# converting our function in a Command Line Interface (CLI).
if __name__ == '__main__':
fire.Fire()
通过终端运行以下命令来运行该程序:
python example.py hello sachin
python example.py nice sachin
python example.py bye sachin
示例二:字典
上一个示例向命令行公开了所有函数。此示例将介绍字典。它使用相同的函数,例如hello、nice和bye。
# converting our function in a Command Line Interface (CLI).
if __name__ == '__main__':
fire.Fire({
'hello' : hello,
'nice': nice,
'bye' : bye
})
通过使用字典,您可以有选择地将函数公开给命令行。
通过终端运行以下命令来运行该程序:
python example.py hello sachin
python example.py nice sachin
python example.py bye sachin
示例三:对象
在 Python Fire 中,您还可以使用对象。这是将函数暴露给命令行的好方法。
# importing fire module
import fire
class World(object):
def hello(self,name):
return 'Hello how are you {}'.format(name)
def nice(self,name):
return 'nice day thank you! {}'.format(name)
def bye(self,name):
return 'bye take care! {}'.format(name)
# converting our function in a Command Line Interface (CLI).
if __name__ == '__main__':
world_instance = World()
fire.Fire(world_instance)
您可以使用相同的命令运行上述示例。
python example.py hello sachin
python example.py nice sachin
python example.py bye sachin
示例四:课程
Python Fire 还提供了使用类的选项。您使用了相同的World类。
# converting our function in a Command Line Interface (CLI).
if __name__ == '__main__':
fire.Fire(World)
要运行上述代码,您可以使用示例一中使用的命令。
消防旗
Python Fire CLI 提供了许多标志。要在命令行提示符中使用这些标志,必须在fire命令中用隔离的--将它们分开。如果至少有一个隔离的--参数,则最后一个隔离的--之后的参数将被视为标志,而最后一个隔离的--之前的所有参数都将被视为fire命令的一部分。
有一些有用的标志,例如--help标志和--interactive标志。通过使用--help,您可以知道函数的名称、它是否是位置参数等。您可以在任何 CLI 上使用--interactive标志进入 Python REPL,其中包含调用fire的上下文中使用的所有模块和变量,并且可供您使用。其他有用的变量,例如-- 、 fire命令的组件、结果和跟踪也将可用。
在下面的代码上运行这些标志。
# importing python fire module
import fire
# defining a function
def hello(name):
return 'Hello {0}, Have a nice day {0}'.format(name)
if __name__ == '__main__':
# converting our fucntion in a Command Line Interface (CLI).
fire.Fire(hello)
使用以下命令运行上述代码的标志:
帮助标志
python example.py -- --help
互动旗帜
使用以下命令运行交互式标志。
python example.py hello -- --interactive
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~