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

Posted 南瓜__pumpkin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python接收命令行参数的3种方法相关的知识,希望对你有一定的参考价值。

基础知识

命令行参数

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

对于短格式,"-"号后面要紧跟一个选项字母,如果还有此选项的附加参数,可以用空格分开,也可以不分开;(长度任意,可以用引号,如: -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模块用法实例详解 ,讲解得很详细很厉害。

以上是关于Python接收命令行参数的3种方法的主要内容,如果未能解决你的问题,请参考以下文章

Python语言命令行参数解析接收参数执行脚本的三种方法

python命令行传递参数的两种方式

python命令行传入参数方式

Python笔记:命令行参数解析

java基础3-重载+命令行传参+递归+数组+排序

PHP命令行脚本接收传入参数的三种方式