python制作命令行工具——fire

Python简化命令行界面库之fire使用详解 在开发命令行工具时,开发者通常需要编写大量代码来解析命令行参数,这既耗时又容易出错。Python Fire 是 Google 开源的一个库,旨在简化命令行界面的开发。它可以将任何 Python 对象自动生成一个命令行界面,从而大大减少了开发时间和代码复杂度。本文将详细介绍 Python Fire 库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。 阅读详情

一、快速介绍

来一波官方介绍。

  • Python Fire是一个库,用于从任何Python对象自动生成命令行接口。
  • 是用python创建CLI的一种简单方法。
  • 是开发和调试Python代码的一个有用工具。
  • Python Fire帮助探索现有代码或将其他人的代码转换为CLI。
  • 使得Bash和Python之间的转换更加容易。
  • 通过使用已经导入和创建的模块和变量来设置REPL, Python Fire使使用Python REPL变得更容易。

没听懂 ???

不是太明白 ???

不要紧,看完本篇就懂了。

二、快速安装

pip install fire
conda install fire -c conda-forge
1. git clone https://github.com/google/python-fire.git
2. cd python-fire
3. python setup.py install

Github地址: python-fire

三、快速上手

实践出真知

创建一个test.py文件,写入以下内容

import fire

def test(your_var="default_value"):
	return 'This is a test ! value : %s' % your_var

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

咱们来看一下效果

# 缺省参数
root@node:~# python test.py 
This is a test ! value : default_value

# 关键字参数
root@node:~# python test.py --your_var=newValue
This is a test ! value : newValue

# 位置参数
root@node:~# python test.py localtionValue
This is a test ! value : localtionValue

现在呢,我们反过头来看一下官方介绍的第一行:

Python Fire是一个库,用于从任何Python对象自动生成命令行接口。

注意关键字:任何python对象。这意味着什么?

我们来看一段代码:

import fire

boy_name = 'XiaoMing'
girl_name = 'XiaoHong'

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

试一下: python test.py boy_name

是不是明白了些什么。

聊完这 缺省参数 、 关键字参数 、 位置参数 ,当然不能少了 * args 和 ** kwargs .

还是来看代码示例:

import fire

def run(*args):
    arg_list = list(args)
    return ' | '.join(arg_list)

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

跑一下就懂啦

root@node:~# python test.py run qwe rty uio asd fgh
qwe | rty | uio | asd | fgh

官方给的示例是这个样子的~~~

import fire

def order_by_length(*items):
  """Orders items by length, breaking ties alphabetically."""
  sorted_items = sorted(items, key=lambda item: (len(str(item)), str(item)))
  return ' '.join(sorted_items)

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

就是加了个长度和字母顺序的排序,来跑一下,看一下效果:

$ python example.py dog cat elephant
cat dog elephant

除此之外呢,我们还可以给输出结果加点料,还是刚才我们写的那个例子:

root@node:~# python test.py run qwe rty uio asd fgh - upper
QWE | RTY | UIO | ASD | FGH

在这里,我们通过命令行对传入的对象和调用结果执行相同的操作,譬如这里的 upper

敲黑板划重点: 分隔符 “ - ” 之后的所有参数都将用于处理函数的结果,而不是传递给函数本身。默认的分隔符是连字符 “ - ”。

默认的分隔符也是可以改的,用到了 fire 的内置参数。

root@node:~# python test.py run qwe rty uio asd fgh X upper -- --separator=X
QWE | RTY | UIO | ASD | FGH

其中的 separator 就是fire的一个内置参数,更多内置参数文末有提到。

我们再来看一下 fire 给我们提供的命令行传参时, 数据的类型 。比较特殊的是, fire 根据值决定类型。

import fire
fire.Fire(lambda obj: type(obj).__name__)

如果有刚学python的小伙伴,记得一定要学一下 lambda 函数,在这里我可以转化为普通写法。

import fire

def test(obj):
    return type(obj).__name__

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

通过简单的一行代码来看一下各种数据类型如何通过命令行传参:

$ python example.py 10
int
$ python example.py 10.0
float
$ python example.py hello
str
$ python example.py '(1,2)'
tuple
$ python example.py [1,2]
list
$ python example.py True
bool
$ python example.py {name:David}
dict

但是当你想传递一个str类型的10,你就要注意了,看以下例子:

$ python example.py 10
int
$ python example.py "10"
int
$ python example.py '"10"'
str
$ python example.py "'10'"
str
$ python example.py \"10\"
str

我们可以看到,你虽然敲了 "10" ,但是依然被判定为 int ,bash会自动处理掉你参数的第一层引号。所以,如果想传 str 类型的10,要再加一层引号,单双引号分开用,或者把引号转义。

如果要传的是dict参数,那就更要小心谨慎了。

# 标准写法
$ python example.py '{"name": "David Bieber"}' 
dict
# 要这么写也没啥问题
$ python example.py {"name":'"David Bieber"'} 
dict
# 但要这么写就解析成了字符串了
$ python example.py {"name":"David Bieber"}
str
# 再加个空格,字符串都不是了
$ python example.py {"name": "David Bieber"}  # Wrong. This isn't even treated as a single argument.
<error>

到这里,我想大家应该大概明白了 fire 的方便快捷之处。

到了这一步的时候,虽然实现了基本功能,但还是和平时我们使用的 linux 命令行工具有很大的区别:

  1. 每次跑命令都要再敲一个python

  2. 每次还要指向指定的py文件或到指定的目录下

    首先说第一个问题,每次多敲六个字母和一个空格,作为一个linux命令行工具是非常不合格的,本来命令行工具就在追求简单化,这种指定解释器的操作我们当然要尽可能省掉咯

    第二个问题,老是指定文件的目录就更麻烦了,日常使用的时候在不同的服务器跑命令还要想想放在哪里,而且如果使用绝对路径的话,更会导致命令的冗长。

下面我们来解决一下这两个“小”问题:

  1. 在文件的第一行指定python解释器,这样就无需在我们运行该文件时再指定解释器
#!/usr/bin/python

import fire

def test(your_var="default_value"):
	return 'This is a test ! value : %s' % your_var

if __name__ == '__main__':
    fire.Fire(test)
  1. 增加文件的可执行权限
root@node:~# chmod +x test.py
  1. 美化以下,去掉小尾巴(仅仅是给文件改了个名字, 这一步非必须)
root@node:~# mv test.py mytool
  1. 做个软连接,可以随时随地找得到该命令
root@node:~# ln -s /root/mytool /usr/bin/mytool

附:如果需要指定编码的话,可以在文件头部加一行,比如

#!/usr/bin/python
# coding: utf-8

这个时候,我们随意在服务器的任意位置执行

root@node:~# mytool
This is a test ! value : default_value

root@node:~# mytool --your_var=newValue
This is a test ! value : newValue

root@node:~# mytool localtionValue
This is a test ! value : localtionValue

Perfection !

如果你已经走到这一步的话,其实已经能写很多简单的命令行工具了。

为什么说简单呢,目前都是使用函数来完成一个个命令的逻辑,多一个子命令多写一个函数,慢慢的就会让这个文件变的庞杂和冗余。而且久而久之,肯定会出现一些看起来很相似,却要使用ctrl + c-v大法去完成的事情。甚至有一些逻辑,想要实现还要自己去做更复杂的逻辑。

四、快速进阶

此时,一年级的已经可以下课了,二年级的请注意听讲了,下面,我们要讲的是:

类的使用

命令嵌套

属性访问

链式调用

4.1 类的使用

通过一个简单的算数类来了解其用法,在下列用法中,我们在fire中注册了一个类对象。

import fire

class Calculator(object):

  def add(self, x, y):
    return x + y

  def multiply(self, x, y):
    return x * y

if __name__ == '__main__':
  calculator = Calculator()
  fire.Fire(calculator)

以下是调用测试

$ python example.py add 10 20
30
$ python example.py multiply 10 20
200

当然我们也可以注册一个类。

import fire

class Calculator(object):

  def add(self, x, y):
    return x + y

  def multiply(self, x, y):
    return x * y

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

跑一下看看:

$ python example.py add 10 20
30
$ python example.py multiply 10 20
200

就这?当然不会,我们还可以通过参数控制实例属性,就像下面的例子:

import fire

class BrokenCalculator(object):

  def __init__(self, offset=1):
      self._offset = offset

  def add(self, x, y):
    return x + y + self._offset

  def multiply(self, x, y):
    return x * y + self._offset

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

我们可以看到,新增了一个offset的实例属性,缺省值是1.

$ python example.py add 10 20
31
$ python example.py multiply 10 20
201

重点来了,我们可以直接给属性赋值,以此来增加你命令行工具的自由度。

$ python example.py add 10 20 --offset=0
30
$ python example.py multiply 10 20 --offset=0
200

4.2 命令嵌套

通过不同的类来控制某些同名命令,其实也是将各个命令分门别类更具条理性的管理。可以看到以下用法。

import fire

class Sing:
    def run(self):
        print('sing sing sing ...')

class Dance:
    def run(self):
        print('dance dance dance ...')

    def status(self):
        print('Around.')


class Pipeline:
    def __init__(self):
        self.sing = Sing()
        self.dance = Dance()

    def run(self):
        self.sing.run()
        self.dance.run()
        self.dance.status()

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

跑跑看:

# python3 ball.py run
sing sing sing ...
dance dance dance ...
Around.
# python3 ball.py sing run
sing sing sing ...
# python3 ball.py dance run
dance dance dance ...
# python3 ball.py dance status
Around.

根据自定义的一个Pipeline类,我们可以自己组合想要的命令行效果,给子命令再分配不同的子集。

4.3 属性访问

其实前面说到类的时候已经简单的说过属性访问(就是那个offset的例子,行啦,忘了就不用往上翻了),这里再详细举例说明一下。

# python3 test.py --age=6 outinfo
Xiao Ming is 6 years old and in the First grade

# python3 test.py --age=7 outinfo
Xiao Ming is 7 years old and in the Second grade

# python3 test.py --age=8 outinfo
Xiao Ming is 8 years old and in the Third grade

综上,我们可以通过控制类的属性来构造类对象。

唠到这儿了,再唠一个骚操作

4.4 链式调用

官方给的例子不太好看,没有那么让人一眼就看懂的感觉,找了个四则运算的简单示例:

import fire

class Calculator:

  def __init__(self):
    self.result = 0
    self.express = '0'

  def __str__(self):
    return f'{self.express} = {self.result}'

  def add(self, x):
    self.result += x
    self.express = f'{self.express}+{x}'
    return self

  def sub(self, x):
    self.result -= x
    self.express = f'{self.express}-{x}'
    return self

  def mul(self, x):
    self.result *= x
    self.express = f'({self.express})*{x}'
    return self

  def div(self, x):
    self.result /= x
    self.express = f'({self.express})/{x}'
    return self

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

函数名呢, add 、 sub 、 mul 、 div 分别对应 加、减、乘、除四则运算,每个方法都接受 x 参数去运算,返回 self ,这样不论往后链式调用多少次都可以,结束调用到 __str__ 打印出结果。

__str__ 在 fire 中用来完成自定义序列化。如果不提供这个方法,在链式调用完成后将会打印帮助内容。

# python3 test.py add 2 sub 1.5 mul 3 div 2
((0+2-1.5)*3)/2 = 0.75

# python3 test.py add 4 sub 2.5 mul 2 div 4 mul 3 sub 5 add 2
(((0+4-2.5)*2)/4)*3-5+2 = -0.75

看完这个大家应该明白链式调用的运用了,这个时候再来看一下官方示例也许会轻松一些。

import fire

class BinaryCanvas(object):
  """A canvas with which to make binary art, one bit at a time."""

  def __init__(self, size=10):
    self.pixels = [[0] * size for _ in range(size)]
    self._size = size
    self._row = 0  # The row of the cursor.
    self._col = 0  # The column of the cursor.

  def __str__(self):
    return '\n'.join(' '.join(str(pixel) for pixel in row) for row in self.pixels)

  def show(self):
    print(self)
    return self

  def move(self, row, col):
    self._row = row % self._size
    self._col = col % self._size
    return self

  def on(self):
    return self.set(1)

  def off(self):
    return self.set(0)

  def set(self, value):
    self.pixels[self._row][self._col] = value
    return self

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

跑一下看看:

$ python example.py move 3 3 on move 3 6 on move 6 3 on move 6 6 on move 7 4 on move 7 5 on
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

PS:我要不说,谁能看出来这是个笑脸???

最后一课

最后看看官方给出的 fire 的内置参数吧,具体怎么应用大家就自己研究咯。

Flags

Using a CLICommandNotes
Helpcommand -- --help显示命令的帮助和使用信息。
REPLcommand -- --interactive进入交互模式。
Separatorcommand -- --separator=X这将分隔符设置为' X '。默认分隔符是“-”。
Completioncommand -- --completion [shell]为CLI生成一个补全的shell脚本。
Tracecommand -- --trace跟踪fire命令调用后发生了啥子。
Verbosecommand -- --verbose在输出中包含私有成员。

fire-GitHub地址

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

想要获取更多Python学习资料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起来学习讨论吧!

 

TVS 管击穿电压与钳位电压的工程解析 TVS二极管的核心参数击穿电压(VBR)和钳位电压(VC)常被混淆,但二者具有本质区别。VBR是 阅读详情

相关推荐

使用nvm离线安装、管理node多版本以及配置环境变量(亲测)

使用nvm离线安装、管理node多版本以及配置环境变量(亲测)

JMHJAVA的专栏 1326

python fire库的使用

一. 介绍 fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象 二. 安装 pip install fire 三. 用法 实例1 单个函数:python 模块名 参...

anywen5590的博客 1239

VOWIFI--相关的协议文档

一、3GPP相关协议文档 3GPP 23.402 Architecture enhancements for non-3GPP accesse- //重要 整体框架结构和流程,3GPP和NON-3GPP切换 3GPP 36.304  User Equipment (UE) procedures in idle mode //重要,终端在空闲状态下3GPP与NON-3GPP之间的重选方法   3GP

时九博客 3578

Python Fire:自动生成命令行接口

Python的Fire库是一个构思非常巧妙的命令行接口库,各种语言的命令行接口我接触过不少,还没有在其他编程语言中看到过类似的库。Fire库最方便的地方在于,你不用再关心命令行的参数(参数的解析一直是命令行程序中最让人头疼的地方),只要专注于自己要实现的功能。此外,如果你已经有一些python脚本的话,通过这个库把它们改造成命令行程序也非常简单。

白帽阿叁的博客 1177

Vue3 + MQTT.js 实现 SCADA 实时数据通信:从不稳定到稳定的完整实践

本文介绍了SCADA组态引擎开发中MQTT协议的应用及优化实践。项目采用MQTT协议实现工业设备数据采集与可视化,但面临连接不稳定、数据格式多样化和数据绑定复杂三大问题。针对MQTT连接问题,分析发现超时设置过短(原8秒)、缺少客户端超时配置和心跳机制是主要原因。优化方案包括:协议转换(mqtt://→ws://)、双重超时保护(15秒手动+30秒客户端)、60秒心跳间隔等,显著提升了连接稳定性。通过完整代码实现展示了连接配置、认证处理和错误处理机制,为物联网数据传输提供了可靠解决方案。

weixin_36794508的博客 1397

安全监控:人员行为分析_(2).人员行为分析基础理论

人员行为分析是指利用计算机视觉技术对视频中的人类行为进行实时或离线检测、识别和理解的过程。视频采集:通过摄像头等设备获取视频数据。视频预处理:对视频数据进行噪声过滤、图像增强等处理,以便后续分析。特征提取:从视频中提取出与人员行为相关的特征,如人体姿势、动作轨迹等。行为识别:利用机器学习或深度学习模型对提取的特征进行分类,识别出具体的人员行为。行为理解:对识别出的行为进行进一步分析,理解其背后的意图或状态。在人员行为分析中,常用的公开数据集包括UCF101、HMDB51、ActivityNet等。

zhubeibei168的博客 1344

探索 Python 的火焰:Fire 库的神秘力量

在 Python 的世界中,命令行接口(CLI)的应用无处不在。但你是否曾因为编写繁琐的命令行参数解析代码而感到头疼?或者在寻找一种更简洁、更直观的方式来处理命令行参数?如果你的答案是肯定的,那么 Fire 库就是你的救星!Fire 是 Google 开发的一个 Python 库,它能够将任何 Python 函数转换为一个命令行接口。这意味着,你只需定义一个函数,Fire 就能自动为你生成相应的命令行工具。这不仅简化了代码,还提高了开发效率。

AIGC搞起 2181

Python 爬虫实战:爬取国家统计局公开数据

国家统计局作为权威的宏观经济数据发布机构,汇聚了人口、GDP、就业、产业经济等多维度的核心统计数据,是开展经济研究、政策分析、行业洞察的重要数据支撑。相较于商业数据平台,国家统计局的公开数据具备权威性、全面性和时效性等特点,但部分数据分散在不同栏目且缺乏结构化下载渠道。本文基于 Python 爬虫技术,系统讲解国家统计局公开数据的爬取方法,重点解决静态表格解析、分页数据抓取、数据结构化转换等问题,同时严格遵循政府网站数据使用规范,为科研、教学等场景提供合规的数据获取方案。本文以国家统计局官网(

2503_91057718的博客 1818

python——fire使用教程

fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块(主函数入口)中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象。 example1: 在主程序入口中,只用fire.Fire()函数就可以把所有的python程序都变成用命令行调用的。 ...

七月听雪的博客 4020

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

家里的路由器背后总有几个网线接口,有的标着 “LAN”,有的标着 “WAN”;公司机房的路由器上,接口更是五花八门,有的插着网线,有的连着光纤,旁边还贴着 “GE0/0/1”“Eth-Trunk1” 这样的标签。你可能会想:不就是插网线的地方吗?有啥区别?其实,这些接口分 “二层接口” 和 “三层接口”,它们的作用差得远了 —— 就像你家的门,有的是 “小区内的单元门”(只通小区内部),有的是 “小区的大门”(能通往外面的世界)。接下来,咱们用大白话 + 生活例子,一点点把这两种接口讲透。

jundao1997的专栏 564

Fluent验证案例03:管道中湍流流动压降计算——采用kw-sst模型计算压降更为准确。

阅读(4053) 评论(0)本案例利用Fluent计算管道中湍流流动压降。

qq_15963745的博客 874

探索Python Fire:简化命令行工具开发的新星

探索Python Fire:简化命令行工具开发的新星 【免费下载链接】python-fire Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python ob...

gitblog_00036的博客 970

【无人机基站】基于K-mean算法实现无人机基站部署附matlab代码

【无人机基站】基于K-mean算法实现无人机基站部署附matlab代码

天天酷科研的博客 240

基于Python的一个开源命令行工具Python Fire

基于Python的一个开源命令行工具Python Fire Python Fire 是谷歌开源的一个命令行工具。 Python Fire 是一个用于从绝对任何 Python 对象自动生成命令行界面 (CLI) 的库。 Python Fire 是一种在 Python 中创建 CLI 的简单方法。 Python Fire 是用于开发和调试 Python 代码的有用工具。 Python Fire 有助于探索现有代码或将其他人的代码转换为 CLI。 Python Fire 使 Bash 和 Python 之间的转换

rothschild666的博客 1258

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

命令行接口工具 Fire [Python编程更加简洁]

1 什么是命令行接口? 参考博客[1]: 大家使用最多的命令行工具应该是pip了,pip提供了很多的命令行参数和选项,我们在终端使用pip install --help命令可以查看install子命令的帮助文档。 命令行接口通常以可执行文件的名称开头。我们只需在控制台中输入它的名称,然后访问脚本的主入口点,例如pip。 我们可以通过命令行,将参数传递给脚本,它们可以是: •Arguments (参数):这是传递给脚本的必需参数。如果您不提供它,则CLI会遇到错误。例如,pandas是此命令中的参数:

Yana_Zeng的博客 1546

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python 命令行工具:fire (已验证)

fire可以根据任何 Python 对象自动生成命令行接口。能以简单的方式生成 CLI是一个开发和调试 Python 代码的实用工具能将现存代码或别人的代码转换为 CLI使得在 Bash 和 Python 间的转换变得更容易通过预先为 REPL 设置所需的模块和变量,使得实用 REPL 更加容易。...

u010075995的博客 1826

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

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

weixin_68789096的博客 925

【Python】记录八:命令行工具fire简介

最近在python代码阅读中,经常会看到fire的出现。搜寻一番才知道,这是谷歌在2017年开源的一个命令行工具,可以方便大家在命令行中输入各种参数,方便调试,github链接在这里。下面简单介绍一下用法。 安装 安装过程非常简单,直接pip就可以: pip install fire 用法 假设fire_example1.py文件内容如下,该文件中定义了两个函数: import fire d...

芒果太甜的博客 895

Python 命令行工具:Fire 与 Argparse 的比较(中英双语)

For anyone looking to streamline their Python command-line tools, Fire is an excellent choice, offering an easy-to-use, flexible, and highly readable alternative to traditional libraries like argparse.

阿正的梦工坊 1326

Python Fire 命令行工具使用完全指南

Python Fire 命令行工具使用完全指南 【免费下载链接】python-fire Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python objec...

gitblog_01024的博客 506

编写命令行工具-fire

命令行工具,即Cli(command-line interface)。是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。 Windows上的自带的命令行工具,就是我们最常接触的cmd 在python中,我们可以运用python的fire模块轻松编写命令行工具。fire会对当前对象结构进行暴露,将结构信息映射到shell命...

棠牧师的博客 630

Python Fire 使用教程

简介 Fire是google开发的一个python第三方库,其作用是可以将python组件(函数调用,类调用)转换成命令行的形式去调用。 安装 可以直接使用pip来安装 pip install fire 或者可以从Fire源码安装,clole如下源码https://github.com/google/python-fire.git, 然后进入目录,运行如下命令 python setup.py i...

JohnSon 5216

python编程命令_Python编程者福音——命令行接口工具fire

大家使用最多的命令行工具应该是pip了,pip提供了很多的命令行参数和选项,我们在终端使用pip install --help命令可以查看install子命令的帮助文档。可以看到,除了最常用的pip install package命令,我们还可以附加很多可选选项来控制pip install命令的行为。例如:-r选项可以指定从一个requirements.txt的文件安装Python依赖包,--no...

weixin_39628339的博客 325

如何快速构建Python命令行工具:Python Fire完整指南 [特殊字符]

Python Fire是一个能够从任何Python对象自动生成命令行接口(CLI)的神奇库,让命令行工具开发变得前所未有的简单高效!无论你是数据科学家、开发工程师还是运维人员,Python Fire都能帮助你在几分钟内将Python代码转换为功能完整的命令行工具。 ## 为什么选择Python Fire? 🤔 传统的命令行工具开发通常需要编写大量样板代码来处理参数解析、帮助文档和错误处理。P

gitblog_00726的博客 402

【Python】自动生成命令行工具 - fire 简介

fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象。 Python fire指南: https://github.com/google/python-fire/blob/master/do...

qq_25283239的博客 743

Python命令行工具Fire

Python命令行工具Fire

感谢所有乐于奉献的人,在此不一一具名 485

命令行工具——fire

fire是2017年3月谷歌开源的一个命令行工具。 https://github.com/google/python-fire 简介 Python Fire 是一个用于从绝对任何 Python 对象创建命令行界面 (CLI) 的库。 Python Fire 是一种在 Python 中创建 CLI 的简单方法。 Python Fire 是用于开发和调试 Python 代码的有用工具。 Python Fire 有助于探索现有代码或将其他人的代码转换为 CLI。 Python Fire 使 Bash

strange_aa的博客 390
上一篇: 从函数到包的Python代码层次
下一篇: 如何利用Python将PDF文档转为MP3音频
pythonputao
博客等级 码龄6年 60粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值