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使用与对比分析
argparse模块用法实例详解 ,讲解得很详细很厉害。
以上是关于Python接收命令行参数的3种方法的主要内容,如果未能解决你的问题,请参考以下文章