python常用的命令行解析库

Python命令行解析库argparse Python命令行解析库argparse详细介绍 阅读详情

1、argparse

argparse是python自带的模块,要经历解析器初始化、参数定义、解析一套流程,使用起来有些繁琐。

一篇argparse使用的文章:https://www.cnblogs.com/yymn/p/8056487.html

argpase的使用:

class Calculator(object):
    """
    计算器
    """

    def add(self, x, y):
        """
        加法运算
        Args:
            x: 第一个操作数
            y: 第二个操作数
        """
        return x + y

    def sub(self, x, y):
        return x - y

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

    def devide(self, x, y):
        assert y != 0, "y参数不正确"
        return x / y

if __name__ == "__main__":
    # 初始化解析器
    parser = argparse.ArgumentParser()
    # 定义参数
    parser.add_argument("action", choices=["add", "sub", "multiply", "devide"], help="操作")
    parser.add_argument("x", type=int, help="第一个操作数")
    parser.add_argument("y", type=int, help="第二个操作数")
    parser.add_argument("-v", "--verbose", help="显示详细信息", action="store_true")
    # 解析
    args = parser.parse_args()
    calculator = Calculator()
    if args.verbose:
        print "x=", args.x
        print "y=", args.y
        print "action=", args.action
    print "result:", getattr(calculator, args.action)(args.x, args.y)

 

2、click

Click 是flask作者用 Python 写的一个第三方模块,用于快速创建命令行。Click 相比于 Argparse,就好比 requests 相比于 urllib。

Click 则是以装饰器的形式作用在目标函数中,要侵入函数本身,本质上还是对 argparse的一种改良作品。
一篇click使用的文章:http://python.jobbole.com/87111/

click的使用:

class Calculator(object):
    """
    计算器
    """

    def add(self, x, y):
        """
        加法运算
        Args:
            x: 第一个操作数
            y: 第二个操作数
        """
        return x + y

    def sub(self, x, y):
        return x - y

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

    def devide(self, x, y):
        assert y != 0, "y参数不正确"
        return x / y

@click.command()  # 装饰一个函数,使之成为命令行接口
@click.option("--verbose", type=click.BOOL, default=False, help="Show verbose info.")  # 定义选项,help还不支持中文,报编码问题
@click.argument("action", type=click.Choice(["add", "sub", "multiply", "devide"]))  # 定义固定参数
@click.argument("x", type=click.INT)
@click.argument("y", type=click.INT)
def calc(action, x, y, verbose):
    calculator = Calculator()
    if verbose:
        print "x=", x
        print "y=", y
        print "action=", action
    print "result:", getattr(calculator, action)(x, y)

if __name__ == "__main__":
    calc()

 

3、fire

fire 这个命令行解析工具非常牛逼,把命令行工具做到了极致,算是一种颠覆式创新,

一行代码能把函数导出到命令行窗口,该项目是 Google工程师开源的 Python 库,虽然代码放到了google官方账号下,但是项目主页申明说它不是 Google 官方项目。

fire使用文档:https://github.com/google/python-fire/blob/master/docs/guide.md

fire的使用:

# 用法1: fire.Fire()
# 直接在程序中调用 fire.Fire(),不需要修改目标函数,fire 会把当前模块下的所有对象导出到命令行中

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

def sub(x, y):
    return x - y

hello = "hello world"

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



# 用法2: fire.Fire(<fn>)
# Fire 可以指定某个函数导出到命令行

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

if __name__ == "__main__":
    fire.Fire(add)  # 当 Fire 接收函数 add 作为参数时,只加载 add 函数到命令行中,此时,在命令行中运行时也无需再指定函数名字,只需要指定参数就好。



# 用法3:fire.Fire(<dict>)
# Fire 不仅可以接收函数,还可以接收字典对象作为参数,可在字典中配置那些函数需要导出到命令行中。例如,有加减乘3个函数,我们可以选择性的选择其中2个导出到命令行。

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

def sub(x, y):
    return x - y

def test():
    return "test"

if __name__ == "__main__":
    fire.Fire({
        "add": add, 
        "sub": sub
    })



# 用法4:fire.Fire(<object>)
# Fire 还可以接收类的实例对象

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



# 用法5:fire.Fire(class)
# Fire 还可以接收一个类作为参数

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

 

 

 

Py的argparse:Python库之argparse命令行解析详解 其中,‘integers’参数用来指定一个名为’integers’的位置参数,’–sum’参数用来指定一个名为’sum’的可选参数。dest参数用来指定解析后的参数的名称,action参数用来指定该参数在解析后的处理方式,'store_const’表示储存一个常量。title参数用来指定该子解析器集合的标题,description参数用来指定该子解析器集合的描述信息,help参数用来提供该子解析器集合的帮助信息。在这个例子中,我们创建了一个互斥参数组,并分别添加了’-v’和’-u’两个参数。 阅读详情

相关推荐

使用Python的argparse库进行命令行参数解析

最后,我们调用parse_args()方法,将解析出来的参数保存在一个args对象中,根据需要使用上面代码中的if语句进行判断并输出相应的信息。为了方便处理这些参数,Python中提供了argparse库,它可以帮助我们轻松地定义和解析命令行参数。其中,/path/to/file.txt是必须提供的位置参数(可以是文件的路径、目录的路径等等),而-v表示启用详细输出模式。使用argparse库能够方便、高效地解析命令行参数,使得我们的Python程序更加易于使用和维护。

与其临渊羡鱼,不如退而结网 210

Python命令行参数的解析

Python命令行参数的解析

m0_46829545的博客 582

【项目实战】Python系统和工具中常用的库(Click/Argparse/Fire/PyYAML/Configparser/json/pickle/shutil/os/subprocess)

奶爸的编程之路,也就一周冷个三天 303

一个“牛逼”的 Python 命令行解析库

在 Python 中,命令行解析库有非常多的选择方案,系统自带的 模块有 argparse,有 Flask 作者写的 click,但是 argparse 使用起来啰嗦, 要经历解析器初始化、参数定义、解析一套流程。例如: 运行: 而 click 则是以装饰器的形式作用在目标函数中,要侵入函数本身,本质上还是对 argparse 的一种改进,并没有太多创新,算是一种改良作品 ...

python学习者的博客 969

python 常见算法(1-50题)

常见的算法题

weixin_58470558的博客 1757

ue4 角色奔跑/冲刺/蹲下 /蹲走 动作切换蓝图

序列:文章分为4部分: 一、准备工作+简单的蓝图连线 二、编写“行走” 混合空间 三、编写“蹲下”混合空间 四、合成2个动画,设置动画蓝图 —————————————— 一、准备工作 下载“动画初学者包”,添加到项目! 主要文件: 打开BP_playerCharacter,组价——添加组件,找到“摄像机”,“机臂” 没有找到就去其他项目复制过来 ———————————— 手写人物的移动,也可以在...

凉城古梦猫扑街的博客 4862

Python命令行解析:从argparse到Click,探索更多可能性

在Python开发中,命令行界面(CLI)工具的创建是一个常见需求。虽然Python标准库中的argparse模块功能强大且灵活,但开发者们一直在寻找更优雅、更简洁的替代方案。本文将深入探讨argparse的特点,并重点介绍一个备受欢迎的替代库——Click,以及其他值得关注的命令行解析库。

步子哥的博客 1372

T265摄像头插着开机后,需要重新插拔才能正常启动

T265摄像头插着开机后,需要重新插拔才能正常启动

qq_35598561的博客 1079

常用的python命令行解析库

常用的python命令行解析库,这儿介绍3种: 1.argparse 2.click 3.fire   argparse是python自带的模块,要经历解析器初始化、参数定义、解析一套流程,使用起来有些繁琐。 一篇argparse使用的文章:https://www.cnblogs.com/yymn/p/8056487.html   Click 是flask作者用 Python 写的...

春华秋实 2602

[pytorch] MedicalNet 3D Resnet预训练模型迁移学习实战:从分割到分类的代码改造

本文详细介绍了如何利用PyTorch对MedicalNet 3D ResNet预训练模型进行迁移学习,从分割任务改造为分类任务。通过解析模型结构、调整分类头、加载预训练权重及优化训练策略,帮助开发者在医疗影像领域快速实现高效模型部署。文章还涵盖了数据预处理、增强技巧及模型轻量化等实用内容。

kmeans3miner的博客 246

解读文献(五)------基于阻抗控制

文章目录背景主动柔顺控制阻抗控制基于力的阻抗控制基于位置的阻抗控制力位混合控制 背景 主动柔顺控制 阻抗控制 基于力的阻抗控制 基于位置的阻抗控制 力位混合控制 ...

accumulation 1万+

2024年最新vue面试题面试必问,一个“牛逼”的 Python 命令行解析库(1),2024年最新Python常用面试

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。当 Fire 接收函数 foo 作为参数时,只加载 foo 函数到命令行中,此时,在命令行中运行时也无需再指定函数名字,只需要指定参数就好。用法3:fire.Fire()

xcbyaya的博客 350

C# 工业视觉性能极致优化:多线程推理池 + 对象复用 + 批量检测,速度提升 10 倍实战

set;} // 输入图像set;} // 异步返回结果set;} // 用于监控延迟性能优化不是魔法,而是对资源生命周期的精细管理和对硬件特性的充分利用。多线程池解决了 CPU/GPU 闲置问题。对象池解决了 GC 停顿问题。零拷贝解决了总线带宽瓶颈。严格的 Dispose解决了内存泄漏问题。这套架构已在多个高速锂电、3C 电子检测产线落地,轻松应对 200ms 甚至 50ms 的严苛节拍。记住,在工业领域,稳定性与速度同等重要。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 303

python命令行工具_python命令行解析工具

在使用python的过程中,会经常遇到一些命令要在命令行中操作,比如pip和python,或者是一些库如jupyter-themes库(用于修改jupyter的页面样式)中的jt命令(比如用jt -t grade3这样的命令套用grade3样式模板)我们有时候还会在命令行中使用类似这样的命令python --version或python -h。(后面--和-是命令行中接参数的两种方法,和pytho...

weixin_39644915的博客 230

SIMULINK开发项目实例 1000 例专栏之第960例--基于电力系统稳定性的建模与仿真场景:-含分布式电源的配电网电压稳定性研究

间歇性与随机性:例如,太阳能依赖于日照强度,风能依赖于风速,这使得它们的输出功率具有不确定性。逆变器接口:大多数分布式电源通过逆变器接入电网,这对电网的动态响应特性产生了影响。位置分散:通常分布在用户侧或靠近负荷中心的位置。本文详细介绍了如何使用Simulink结合Simscape Electrical 构建一个用于研究含分布式电源配电网电压稳定性的模型,并提供了详细的仿真流程说明。

xiaoheshang_123的博客 153

控制科学与工程(自动化)保研经验【2】——南开、同济篇

禁止转载 1、南开人工智能学院夏令营   保研之旅第一个夏令营就是南开,南开夏令营非常早(6月份),当时我们专业仅有两人入营。夏令营前一天我们两个坐高铁来到了天津,几经辗转来到了南开的津南校区,非常偏僻。在自己找的酒店住了一晚,第二天一早去学院报到,资格审查、报销路费等等,然后开营仪式,吃饭,入住酒店,实验室参观。   开营仪式和实验室参观了解到,南开人工智能学院是国内第一批人工智能学院,和很多高...

Control Everything 6532

Python 高效命令行参数解析方法总结

原文地址: https://dreamhomes.github.io/posts/202101161752.html 背景 命令行参数工具 Python 中常用的工具,比如做实验希望调节参数的时候,如果参数都是通过硬编码写在代码当中的话,每次修改参数都需要修改对应的代码和逻辑显然这不太方便。比较好的办法就是把必要的参数设置成通过命令行传入的形式,这样我们只需要在运行的时候修改参数就可以了。本文总结下三种好用的参数解析方法。 argparse argparse 是 Python 自带的命令行解析库,比较常.

梦家の博客 849

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Python 解析命令行参数(argparse、click)及 CLI 应用开发

Python 提供了多种解析命令行参数的工具,无论是标准库中的argparse还是第三方库click,都能满足不同的需求。选择合适的工具取决于项目的复杂程度和个人偏好。希望本文能帮助您更好地理解和使用这些工具,从而更高效地开发 CLI 应用。```

2501_90749964的博客 498

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

Python Package

1、Sympy 用于符号数学的Python库。 tutorial

hello_world_banni的博客 161

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一个“牛逼”的 Python 命令行解析库-fire

在 Python 中,命令行解析库有非常多的选择方案,系统自带的 模块有 argparse,有 Flask 作者写的 click,但是 argparse 使用起来啰嗦, 要经历解析器初始化、参数定义、解析一套流程。例如: # -*- coding: utf-8 -*- # arg_test.py import argparse def counter(file_type=None): ...

Never-Giveup的博客 713

python命令行参数解析库

简介 最近公司项目需要加个小功能,就是python程序运行的时候可以通过命令行输入参数,增加某些选项可配置的功能。在开发过程中,如果遇到希望能够增加命令行参数这种需求,python提供了对应的库argparse, 针对这个task做个小总结 官方文档是这样介绍argparse库的。 The argparse module makes it easy to write user-fr...

Morgansays 3132

Docopt - Python命令行选项解析库

Docopt适用于任何需要处理命令行参数或选项的Python程序。以下是一些具体的使用场景: 1. 自动化工具:需要根据命令行参数执行不同的操作。 2. 脚本:通过命令行参数提供不同的功能或配置选项。 3. 命令行应用程序:需要一个复杂的命令行界面,但又不想编写大量的解析代码。 ## 主要特点 Docopt的主要特点是其简洁且人性化的API,以及它的灵活性和可扩展性。以下是Docopt的一些...

gitblog_00076的博客 375

Python 命令行参数详解

通常,对于大型项目程序而言,执行程序的一个必要的步骤是正确处理命令行参数,这些参数是提供给包含某种参数化信息的程序或脚本的参数。命令行参数是参数化程序执行的一种常见且简单的方法。本文主要介绍以下三种常见的获取和解析命令行参数的方法:sys.argv、getopt 以及 Argparse。

盼小辉丶的博客 3万+

Python爬虫 解析库的使用

第三章 解析库的使用 3.1BeautifulSoup BeautifulSoup也被称作为”美味汤“,BeautifulSoup提供了一些简单的、Python式的函数来处理导航、搜索、修改和分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据。BeautifulSoup已成为和lxml、html6lib一样出色的Python解释器,为用户灵活的提供不同的解析策略或强劲的速度。 作者提示:当你学习了Xpath后,你会发现BeautifulSoup是非常不好用的,并且学了Xpath之后

maplecsd的博客 1922

ArgumentParser: Python命令行参数解析库

ArgumentParser: Python命令行参数解析库 ArgumentParser 是一个简单易用的 Python 库,用于解析命令行参数。它可以帮助您为您的应用程序添加对命令行选项、参数和子命令的支持。 能用来做什么? ArgumentParser 可以帮助您构建具有以下功能的应用程序: 处理命令行选项,如 -v 或 --verbose。 接收命令行参数,如文件名或目录路径。 支持子命...

gitblog_00092的博客 515

一个非常nb的 Python 命令行解析库

在 Python 中,命令行解析库有非常多的选择方案,系统自带的 模块有 argparse,有 Flask 作者写的 click,但是 argparse 使用起来啰嗦, 要经历解析器初始化、参数定义、解析一套流程。例如: # -*- coding: utf-8 -*- # arg_test.py import argparse def counter(file_type=None): return {file_type: 100} # 初始化解析器 parser = argparse.Ar..

python_miao的博客 429
上一篇: 面试遇到的问题
下一篇: 《将博客搬至优快云》
CSTO
博客等级 码龄17年 3粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值