python 参数模块 getopt 与 argparse

在写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

运行结果如下:

python 参数模块 getopt 与 argparse_第1张图片

我们加入必须参数

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

python 参数模块 getopt 与 argparse_第2张图片

加入位置参数

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

python 参数模块 getopt 与 argparse_第3张图片

参数可选项和默认项

parser.add_argument("arg_name",default = 1,type = int,choices = [0,1]) #default 默认值,choices 可选项

 

你可能感兴趣的:(python,随笔)