iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python编程编写完善的命令行工具
  • 142
分享到

Python编程编写完善的命令行工具

2024-04-02 19:04:59 142人浏览 泡泡鱼

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

摘要

目录1. python-fire2. mando最后的话1. Python-fire python-fire 是一个三方库,可以将任何 Python 对象变成一个命令行接口。 使用前

1. Python-fire

python-fire 是一个三方库,可以将任何 Python 对象变成一个命令行接口。

使用前先 pip install fire 下。

可以把你的函数直接变成命令行接口:


import fire
def hello(name="World"):
  return "Hello %s!" % name
if __name__ == '__main__':
  fire.Fire(hello)
 

然后在命令行,就可以执行这些命令:


python hello.py  # Hello World!
python hello.py --name=David  # Hello David!
python hello.py --help  # Shows usage infORMation.

也可以把可以把你的类直接变成命令行接口:


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

然后就可以这样执行:


python calculator.py double 10  # 20
python calculator.py double --number=15  # 30

除此之外,还有这样的功能:

执行后自动进入交互模式:

command -- --interactive

比如:

查看执行的调用顺序:

python arg_demo2.py double 10 -- --trace

结果如下:

还可以为你生成 shell 自动补全命令的脚本,真的很贴心:

python arg_demo2.py double 10 -- --completion

2. mando

mando 是一个基于 argparse 的装饰器,可以让你在几秒内编写出一个灵活、可维护的命令行工具

使用前先 pip install mando 下。

用法:

example.py


from mando import command, main
@command
def echo(text, capitalize=False):
    '''Echo the given text.'''
    if capitalize:
        text = text.upper()
    print(text)
if __name__ == '__main__':
    main()
 

命令行用法:


$ python example.py -h
usage: example.py [-h] {echo} ...
positional arguments:
  {echo}
    echo      Echo the given text.
optional arguments:
  -h, --help  show this help message and exit
$ python example.py echo -h
usage: example.py echo [-h] [--capitalize] text
Echo the given text.
positional arguments:
  text
optional arguments:
  -h, --help    show this help message and exit
  --capitalize
 

真实执行结果:


$ python example.py echo spam
spam
$ python example.py echo --capitalize spam
SPAM

再复杂一点的:


from mando import command, main
@command
def push(repository, all=False, dry_run=False, force=False, thin=False):
    '''Update remote refs along with associated objects.
    :param repository: Repository to push to.
    :param --all: Push all refs.
    :param -n, --dry-run: Dry run.
    :param -f, --force: Force updates.
    :param --thin: Use thin pack.'''
     print ('Pushing to {0}. All: {1}, dry run: {2}, force: {3}, thin: {4}'
           .format(repository, all, dry_run, force, thin))
if __name__ == '__main__':
    main()
  

mando 可以理解 Sphinx 风格的文档字符串中的 :param 参数说明,因此可以显示帮助文档。


$ python git.py push -h
usage: git.py push [-h] [--all] [-n] [-f] [--thin] repository
Update remote refs along with associated objects. 
positional arguments:
  repository     Repository to push to.
optional arguments:
  -h, --help     show this help message and exit
  --all          Push all refs.
  -n, --dry-run  Dry run.
  -f, --force    Force updates.
  --thin         Use thin pack.
 

mando 还可以理解 python3 的类型提示,因此传错了参数,也会有报错提示:


from mando import command, main
@command
def duplicate(string, times: int):
    '''Duplicate text.
    :param string: The text to duplicate.
    :param times: How many times to duplicate.'''
    print(string * times)
if __name__ == '__main__':
    main()
 

执行:


$ python3 test.py duplicate "test " 5
test test test test test
$ python3 test.py duplicate "test " foo
usage: test.py duplicate [-h] string times
test.py duplicate: error: argument times: invalid int value: 'foo'

最后的话

本文分享编写建命令行工具的三方库,使用起来非常简单,我也是偶然在 GitHub 搜索到的,写代码前先在 GitHub 上搜一下真的是一个很好的习惯,以上就是Python编程编写完善的命令行工具的详细内容,更多关于Python编写完善的命令行工具的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python编程编写完善的命令行工具

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python编程编写完善的命令行工具
    目录1. python-fire2. mando最后的话1. python-fire python-fire 是一个三方库,可以将任何 Python 对象变成一个命令行接口。 使用前...
    99+
    2022-11-12
  • 如何理解Linux下的命令行编程工具Awk
    这篇文章主要介绍“如何理解Linux下的命令行编程工具Awk”,在日常操作中,相信很多人在如何理解Linux下的命令行编程工具Awk问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Linux下的命令行编...
    99+
    2023-06-13
  • Linux服务器安全性的关键:善用命令行工具
    Linux服务器的安全性是非常重要的,善用命令行工具可以帮助管理员增强服务器的安全性。以下是一些常用的命令行工具和技巧,可以提高Li...
    99+
    2023-10-10
    Linux
  • 【Java可执行命令】(四)反编译工具javap:深入解析应用程序反编译工具javap ~
    Java可执行命令详解之javap 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.1.1 可选参数:-l3.1.2 可选参数:-c3.1.3 可选参数:-s3.1.4 可选参数...
    99+
    2023-09-16
    java python 开发语言 java-ee jvm 后端
  • Python编写的Linux邮件发送工具
    之前有用过Linux自带的mail工具来定时发送邮件,但是要装mailx还有配mail.rc,这还比较正常,关键是到了ubantu下这工具用起来真是操蛋,如果哪天其他的unix like操作系统也有需求,那就太麻烦了,所以我用自带的pyt...
    99+
    2023-01-31
    邮件发送 工具 Python
  • 详解如何使用Node.js编写命令工具——以vue-cli为例
    vue-cli全局安装之后,提供了vue命令和vue init、vue list、vue build三个子命令,通过命令可以搭建基于vue.js的脚手架项目。本文简单介绍一下这些命令是如何实现的。 vue-...
    99+
    2022-06-04
    为例 如何使用 详解
  • 适用于Python的编写工具有哪些
    本篇内容主要讲解“适用于Python的编写工具有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“适用于Python的编写工具有哪些”吧!秘密武器#1:使用Kite可以更快地编写代码,减少Goo...
    99+
    2023-06-16
  • C语言编程C++编辑器及调试工具操作命令详解
    目录一、GCC编译器1、GNU工具2、GCC简介3、GCC编译器的版本4、gcc所支持后缀名解释5、编译器的主要组件6、GCC的基本用法和选项7、GCC的错误类型及对策8、GCC编译...
    99+
    2022-11-12
  • 如何使用 Python 编程改善你的 shell 工作流程?
    在日常工作中,我们经常需要在 shell 中执行一些任务,例如文件操作、数据处理、网络请求等。虽然 shell 工具已经非常强大,但是使用 Python 编程可以更加高效地完成这些任务,同时也可以让我们的工作流程更加自动化和可维护。 在本...
    99+
    2023-08-07
    编程算法 shell linux
  • python开发简单的命令行工具简介
    目录介绍python标准库sys模块命令行工具概念基础示例使用介绍可选参数设置必选参数设置列表参数传入设置互斥参数默认参数设置介绍 Python模块argparse,这是一个命令行选...
    99+
    2023-02-01
    python开发命令行工具 python制作命令行工具 Pyth编写命令行工具
  • Python+pandas编写命令行脚本操作excel的tips详情
    目录一、python logging日志模块简单封装二、pandas编写命令行脚本操作excel的小tips1、tips1.1使用说明格式1.2接收操作目录方法1.3检测并读取目录下...
    99+
    2022-11-11
  • python编写adb截图工具的实现源码
    目录一、 功能二、使用说明三、实现1.初始源码2.优化:增加ip连接断开重连处理一、 功能 Android端或者Android终端的远程截图至本地电脑中 二、使用说明 adb截图工具可用于Android手机及And...
    99+
    2022-06-02
    python adb截图工具 python 截图工具
  • MySQL命令行自动完成和补全的小工具是什么
    小编给大家分享一下MySQL命令行自动完成和补全的小工具是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL的命令行客...
    99+
    2022-10-18
  • Linux命令行的新玩法:如何使用Python编写接口?
    随着互联网的发展,接口编程变得越来越重要。在Linux命令行中使用Python编写接口是一种非常方便的方法,可以快速地实现各种功能。在本文中,我们将介绍如何使用Python编写接口,并演示一些实用的代码。 简介 在Linux命令行中,...
    99+
    2023-07-09
    bash linux 接口
  • Python编程必备的工具有哪些
    这篇文章主要讲解了“Python编程必备的工具有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python编程必备的工具有哪些”吧!  1、lpython:是一个基于Python She...
    99+
    2023-06-01
  • Python编程获取终端命令行参数示例
    目录实现步骤命令行启动动态绑定端口号代码实现实现步骤 获取终端命令行参数,通过使用 sys.argv实现 1.导入sys模块 import sys 2.获取命令行参数 params ...
    99+
    2022-11-11
  • Python编程如何获取终端命令行参数
    这篇文章主要介绍了Python编程如何获取终端命令行参数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python编程如何获取终端命令行参数文章都会有所收获,下面我们一起来看看吧。实现步骤获取终端命令行参数,通...
    99+
    2023-07-02
  • 利用Python编写简易的录制屏幕小工具
    目录1、准备2、代码由于最近测试需要录制系统界面的操作过程,因为都是全屏的操作,所以用python做一个简单的录屏小工具。 实现过程也是比较简单,就是通过对屏幕操作进行不断的截图,最...
    99+
    2022-11-11
  • Laravel编程必备的Python IDE和JavaScript工具
    Laravel是一个流行的PHP框架,它提供了许多有用的工具和功能来帮助开发人员快速构建高质量的Web应用程序。在Laravel开发过程中,使用Python IDE和JavaScript工具可以帮助我们提高开发效率和代码质量。在本文中,我...
    99+
    2023-11-10
    javascript ide laravel
  • Python中的命令行参数解析工具之docopt详解
    前言 docopt 是一个开源的库,代码地址:https://github.com/docopt/docopt。它在 README 中就已经做了详细的介绍,并且还附带了很多例子可供学习,这篇文章也是翻译一下...
    99+
    2022-06-04
    命令行 详解 参数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作