在写python时经常有两种参数引入模块。
1.getopt 模块
个人经常使用的这个模块,方便简洁,跟 sys 模块配合使用
import sys,getopt
oprts,args = getopt.getopt(sys.argv[1:],'h:o,i:',['input=','output=','help',''])
# 短参数 -h,-o,-i ,长参数 --input= , --output=, ...
#oprts 就有一项 [('-h',参数1),('--input':xxx),('--output',xxx)] 以数组形式体现
for option,value in oprts:
if option == "-h":
xxx #短参数记录
if option == "--input":
xxx #长参数记录
2.argparse 模块
import argparse
parser = argparse.ArgumentParser(description = "your script description") #第一步,description 可以为空
parser.add_argument("--mode","-m",action = "store_true",help = "mode true") #添加 --mode 标签,别名 -m ,action 表示一出现即代表 True,help 为参数描述
args = parser.parse_args() #将变量以标签-值的字典形式存入args字典
print args.mode
将变量以标签-值的字典形式存入args字典
print args.mode
运行结果如下:
我们加入必须参数
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--mode","-m",action = "store_true",help = "mode true")
#添加必要参数
parser.add_argument("--verbose","-v",required = True,type = int,help = "must exists") #required = True 表示必须参数
args = parser.parse_args()
print args.mode
print args.verbose
加入位置参数
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--mode","-m",action = "store_true",help = "mode true")
parser.add_argument("--verbose","-v",required = True, type = int ,help = "must exists")
#加入位置参数,没有 -- 或者 -
parser.add_argument("filename")
args = parser.parse_args()
print args.mode
print args.verbose
print args.filename
参数可选项和默认项
parser.add_argument("arg_name",default = 1,type = int,choices = [0,1]) #default 默认值,choices 可选项