返回顶部
首页 > 资讯 > 后端开发 > Python >怎么使用Python命令行库fire
  • 213
分享到

怎么使用Python命令行库fire

2023-06-16 16:06:44 213人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“怎么使用python命令行库fire”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python命令行库fire”吧!一、前言今天要介绍的 fire则是用一种面向广义对象

本篇内容主要讲解“怎么使用python命令行库fire”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python命令行库fire”吧!

一、前言

今天要介绍的 fire则是用一种面向广义对象的方式来玩转命令行,这种对象可以是类、函数、字典、列表等,它更加灵活,也更加简单。

本系列文章默认使用 Python 3 作为解释器进行讲解。若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~

二、介绍

fire 可以根据任何 Python 对象自动生成命令行接口。它有如下特性:

  • 能以简单的方式生成 CLI

  • 是一个开发和调试 Python 代码的实用工具

  • 能将现存代码或别人的代码转换为 CLI

  • 使得在 Bash 和 Python 间的转换变得更容易

  • 通过预先为 REPL 设置所需的模块和变量,使得实用 REPL 更加容易

通过如下命令可快速安装 fire 库:

pip install fire

三、快速开始

回忆下使用 argparse、docopt 和 click 实现命令行程序的步骤:

  • 对于 argparse 来说,要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑(四步)

  • 对于 docopt 来说,要先定义定义接口描述,再解析命令行,最后实现业务逻辑(三步)

  • 对于 click 来说,就是实现业务逻辑和通过装饰器的方式定义参数(两步)

它们的实现步骤越来越简单,从四步简化到了两步。而今天的主角 fire 只需一步,现业务逻辑就够了。

这简直简单的不可思议,为什么这样做就够了?我们不妨考虑下 Python  中的函数,函数是不是可以对应一个命令行程序,而函数的参数可以对应命令行程序的参数和选项呢?再看看 Python  中的类,一个类是不是可以对应一个命令行程序,而类中的每个实例方法就可以对应子命令,实例方法中的参数就是对应子命令的参数和选项。

这么一想,理论上确实是可以实现的,我们不妨通过下面的示例来看看 fire 是如何让我们通过简单的方式实现命令行程序。

3.1 使用函数

来看这么一个例子:

import firedef hello(name="World"):  return 'Hello  {name}!'.fORMat(name=name)if __name__ == '__main__':   fire.Fire(hello)

在上述例子中定义一个 hello 函数,它接受 name 参数,并且有默认值 "World"。使用 fire.Fire(hello)  即可非常简单快速地实现命令功能,这个命令行就接受 --name 选项,不提供时使用默认值 "World",提供时就按提供的值来。

可在命令行中执行下列命令:

$ python hello.pyHello World!$ python hello.py --name=ProdesireHello  Prodesire!$ python hello.py --helpINFO: Showing help with the  command 'hello.py -- --help'.NAME    hello.pySYNOPSIS    hello.py  <flags>FLAGS    --name=NAME

3.2 使用类

使用函数是最简单的方式,如果我们想以更有组织的方式来实现,比如使用类,fire 也是支持的。

import fireclass Calculator(object):  """A simple calculator  class."""  def double(self, number):    return 2 * number  def  triple(self, number):    return 3 * numberif __name__ == '__main__':  fire.Fire(Calculator)

在上述例子中定义一个 Calculator 类,它有两个实例方法 double 和 triple,并且都接受 number 参数,没有默认值。使用  fire.Fire(Calculator) 即可非常简单快速地实现命令功能,这个命令行支持两个子命令 double 和 triple,位置参数 NUMBER  或选项参数 --number

可在命令行中执行下列命令:

$ python calculator.py double 1020$ python calculator.py triple --number=1545$ python calculator.py double --helpINFO: Showing help with the command 'calculator.py double -- --help'.NAME    calculator.py doubleSYNOPSIS    calculator.py double NUMBERPOSITioNAL ARGUMENTS    NUMBERNOTES    You can also use flags syntax for POSITIONAL ARGUMENTS

到此,相信大家对“怎么使用Python命令行库fire”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么使用Python命令行库fire

本文链接: https://lsjlt.com/news/284370.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用Python命令行库fire
    本篇内容主要讲解“怎么使用Python命令行库fire”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python命令行库fire”吧!一、前言今天要介绍的 fire则是用一种面向广义对象...
    99+
    2023-06-16
  • Python命令行库click的具体使用
    目录一、前言二、介绍三、快速开始四、小结一、前言 今天要介绍的 click 则是用一种你很熟知的方式来玩转命令行。命令行程序本质上是定义参数和处理参数,而处理参数的逻辑一定是与所定义...
    99+
    2024-04-02
  • Python 中如何使用click命令行库:
    Python 中如何使用click命令行库:,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。click是一个以尽可能少的代码、以组合的方式创建优美的命令行程序的 ...
    99+
    2023-06-16
  • dos命令行choice命令怎么使用
    在Windows系统中,choice命令用于让用户在几个选项中做出选择。下面是choice命令的基本语法和用法: choice [/...
    99+
    2024-03-01
    dos
  • 用什么库写Python命令行程序
    这篇文章主要介绍“用什么库写Python命令行程序”,在日常操作中,相信很多人在用什么库写Python命令行程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用什么库写Python命令行程序”的疑惑有所帮助!...
    99+
    2023-06-16
  • Python命令行解析器argparse怎么使用
    这篇文章主要讲解了“Python命令行解析器argparse怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python命令行解析器argparse怎么使用”吧!第1章 argpars...
    99+
    2023-06-22
  • 怎么在dos命令行中使用choice命令
    这期内容当中小编将会给大家带来有关怎么在dos命令行中使用choice命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Choice 命令使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加...
    99+
    2023-06-08
  • zip命令怎么在dos命令行中使用
    本篇文章为大家展示了zip命令怎么在dos命令行中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常用方式:-o (set Output directory) switchSpecifies a ...
    99+
    2023-06-08
  • python命令行参数模块argparse怎么使用
    今天小编给大家分享一下python命令行参数模块argparse怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Pyt...
    99+
    2023-07-05
  • 怎么在CMD命令行中使用管道命令
    本篇文章为大家展示了怎么在CMD命令行中使用管道命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是管道命令  管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息。  如 dir...
    99+
    2023-06-08
  • Python 命令行 prompt_toolkit 库详解
    目录一. 使用 Bash 下常用快捷键二. 实现查找历史命令三. 根据历史输入自动提示四. 实现输入的自动补全Python 的第三方库 prompt_toolkit 用于打造交互式命...
    99+
    2024-04-02
  • linux怎么用命令行使用hanlp
    这篇文章主要讲解了“linux怎么用命令行使用hanlp”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux怎么用命令行使用hanlp”吧!本文主要工作...
    99+
    2024-04-02
  • maven常用命令行怎么使用
    这篇“maven常用命令行怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“maven常用命令行怎么使用”文章吧。mav...
    99+
    2023-06-26
  • Python命令行工具clint怎么用
    这期内容当中小编将会给大家带来有关Python命令行工具clint怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Clint 是一个包含了用于开发命令行应用的工具集合模块。它支持高亮,但是在会话为 T...
    99+
    2023-06-02
  • python怎么执行shell命令
    在Python中可以使用`os`模块中的`system`函数来执行Shell命令。以下是一个示例:```pythonimport o...
    99+
    2023-09-27
    python shell
  • python怎么执行cmd命令
    在 Python 中执行 cmd 命令,可以使用 `os` 模块中的 `system()` 或 `popen()` 方法。下面是使用...
    99+
    2023-09-22
    python
  • python怎么运行cmd命令
    本篇内容介绍了“python怎么运行cmd命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、使用os.system()方法os.syst...
    99+
    2023-06-27
  • python怎么进入命令行
    在 python 中进入命令行的方法有:使用 subprocess 模块直接打开交互式命令行。通过 os.system() 函数调用命令行命令。使用 shelve 模块创建持久的命令行。...
    99+
    2024-05-14
    python macos
  • 怎么使用linux命令行登陆
    本篇内容介绍了“怎么使用linux命令行登陆”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!以下是linux命令行登陆的方法。作为默认,RED...
    99+
    2023-06-17
  • Maven命令行选项怎么使用
    今天小编给大家分享一下Maven命令行选项怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Maven 选项Maven ...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作