python命令行参数列表_python解析命令行参数

第一种方式,使用sys模块获取参数

sys.argv[0] 脚本名称

sys.argv[1] 第一个参数

sys.args[2] 第二个参数

第二种方式,使用标准库中的参数解析模块

getopt

opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])

getopt()第一个参数是参数列表,需要剔除第一个脚本名称参数

getopt()第二个参数是短格式列表,不带参数":"时表示开关状态

getopt()第三个参数是长格式列表,不带参数"="时表示开关状态

opts获取的是参数向量,args获取的是剩余参数

optparse

#usage 定义的是使用方法,%prog 表示脚本本身,version定义的是脚本名字和版本号

parse=optparse.OptionParser(usage='"usage:%prog \[options\] arg1,arg2"',version="%prog 1.2")

parse.add\_option('-u','--user',dest='user',action='store',type=str,metavar='user',help='Enter User Name!!')

parse.add\_option('-p','--port',dest='port',type=int,metavar='xxxxx',default=3306,help='Enter Mysql Port!!')

parse.add\_option('-v',help='Mysql Version!!')

#-u,--user 表示一个是短选项 一个是长选项

#dest='user' 将该用户输入的参数保存到变量user中,可以通过options.user方式来获取该值

#type=str,表示这个参数值的类型必须是str字符型,如果是其他类型那么将强制转换为str(可能会报错)

#metavar='user',当用户查看帮助信息,如果metavar没有设值,那么显示的帮助信息的参数后面默认带上dest所定义的变量名

#help='Enter..',显示的帮助提示信息

#default=3306,表示如果参数后面没有跟值,那么将默认为变量default的值

parse.set\_defaults(v=1.2)  #也可以这样设置默认值

options,args=parse.parse\_args()

print 'OPTIONS:',options

print 'ARGS:',args

argparse

parser = argparse.ArgumentParser(description='Process some integers.')

parser.add_argument('integers', metavar='N', type=int, nargs='+',

help='an integer for the accumulator')

parser.add_argument('--sum', dest='accumulate', action='store_const',

const=sum, default=max,

help='sum the integers (default: find the max)')

args = parser.parse_args()

print(args.accumulate(args.integers))

第三种方式,使用第三方工具

click

import click

@click.command()

@click.option('--count', default=1, help='Number of greetings.')

@click.option('--name', prompt='Your name',

help='The person to greet.')

def hello(count, name):

"""Simple program that greets NAME for a total of COUNT times."""

for x in range(count):

click.echo('Hello %s!' % name)

Typer

app = typer.Typer()

@app.command()

def hello(name: str):

typer.echo(f"Hello {name}")

@app.command()

def goodbye(name: str, formal: bool = False):

if formal:

typer.echo(f"Goodbye Ms. {name}. Have a good day.")

else:

typer.echo(f"Bye {name}!")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值