Python接收命令行参数的3种方法

本文介绍了Python中处理命令行参数的三种方法,重点讲解了argparse库的使用。argparse模块提供了更方便的方式来创建用户友好的命令行接口,支持短格式和长格式参数,以及各种参数选项。通过示例代码展示了如何定义和获取命令行参数,包括位置参数、可选参数、默认值和帮助信息等。文章还提供了一个预定义命令行参数的shellAccept函数示例,用于接收和存储URL、线程数和版本号等参数。
摘要由CSDN通过智能技术生成

基础知识

命令行参数

命令行参数模式: 在命令行参数中分为“-”和“–”两种模式。

对于短格式,"-"号后面要紧跟一个选项字母,如果还有此选项的附加参数,可以用空格分开,也可以不分开;(长度任意,可以用引号,如: -h -ls -l s 等等)

对于长格式,"–“号后面要跟一个单词,如果还有些选项的附加参数,后面要紧跟”=",再加上参数。("="号前后不能有空格,如: --input=data.txt)

简单比较 3 种方法
名称说明
sys库最简单,只能够提供简单的参数解析功能
getopt库只能简单的处理命令行参数 ,较sys封装更好一点
argparse库更加容易的编写用户友好的命令行接口

argparse库的使用

主要参考 argparse模块用法实例详解 ,讲解得很详细很厉害。

import argparse

parser = argparse.ArgumentParser(description='命令行中传入一个数字')
#type是要传入的参数的数据类型  help是该参数的提示信息
parser.add_argument('integers', type=str, help='传入的数字')

args = parser.parse_args()

#获得传入的参数,输出内容 Namespace(integers='5')
print(args)

parser.parse_args()是一个类似于python字典的数据类型。关于添加参数的相关参数用法如下。

位置参数是固定顺序的,所以经常用到可选参数,有点像关键词传参,需要加 ---,这两种方式可以同存,也可以只存在一个。

--
位置参数键名‘integers’
类型type=str, int
参数数量nargs=’+’,表示至少一个参数
必须参数required=True
可选参数“-v”, “–verbosity”, 调用使用args.v
默认参数default
参数说明help=‘xx’
编写实例
def shellAccept():
    '''
    预定义命令行参数,接收并存储
    必须参数:None
    可选参数:
    -u / --URL
    -t / --threads
    -v / --version
    @return:返回获取到的命令行参数args,以数据字典格式
    '''
    try:    # 异常处理
        parser = argparse.ArgumentParser(description="传入命令参数")
        parser.add_argument("-u", "--URL", type=str, help="待测试的URL")
        parser.add_argument("-t", "--threads", type=str, help="线程数")
        parser.add_argument("-v", "--version", type=str, help="工具版本号")
        args = parser.parse_args()  # 获取参数字典
        return args
    except Exception as e:
        print(e)

参考

Python参数解析模块sys、getopt、argparse使用与对比分析

python获取命令行参数的方法(汇总)

argparse — 命令行选项、参数和子命令解析器

argparse模块用法实例详解 ,讲解得很详细很厉害。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值