当前位置: 首页 > 后端技术 > Python

Python解析命令行参数

时间:2023-03-25 23:03:34 Python

第一种方法使用sys模块获取参数sys.argv[0]脚本名称sys.argv[1]第一个参数sys.args[2]第二个参数第二种方法使用标准库模块中的参数解析getoptopts,args=getopt.getopt(sys.argv[1:],"ho:",["help","output="])getopt()的第一个参数是参数列表,第一个脚本需要消除名称参数getopt()第二个参数是一个短格式列表,没有参数“:”,表示切换状态getopt()第三个参数是一个长格式列表,没有参数“=”,表示switchstateopts获取参数向量,args获取其余参数optparse#usage定义使用方法,%prog代表脚本本身,version定义脚本名称和版本号parse=optparse.OptionParser(usage='"usage:%prog\[选项\]arg1,arg2"',version="%prog1.2")parse.add\_option('-u','--user',dest='user',action='store',type=str,metavar='我们er',help='输入用户名!!')parse.add\_option('-p','--port',dest='port',type=int,metavar='xxxxx',default=3306,help='EnterMysqlPort!!')parse.add\_option('-v',help='MysqlVersion!!')#-u,--user表示一个是短选项,一个是长选项option#dest='user'将用户输入的参数保存到变量user中,可以通过options.user获取值#type=str,说明参数值的类型必须是str字符类型,如果是是另一种类型,会被强制转换为str(可能会报错)#metavar='user',当用户查看帮助信息时,如果没有为metavar设置值,则会跟随显示的帮助信息的参数通过dest默认定义的变量名#help='Enter..',显示的帮助信息#default=3306,意思是如果参数后面没有值,会默认为变量defaultparse.set\_defaults(v=1.2)的值#也可以以这种方式设置默认值options,args=parse.parse\_args()print'OPTIONS:',optionsprint'ARGS:',argsargparseparser=argparse.ArgumentParser(description='Processsomeintegers.')parser.add_argument('整数',metavar='N',type=int,nargs='+',help='累加器的整数')parser.add_argument('--sum',dest='accumulate',action='store_const',const=sum,default=max,help='对整数求和(默认:求最大值)')args=parser.parse_args()print(args.accumulate(args.integers))https://docs.python.org/zh-cn...第三种方式是使用第三方工具clickimportclick@click.command()@click.option('--count',default=1,help='Numberofgreetings.')@click.option('--name',prompt='你的名字',help='要打招呼的人。')defhello(count,name):"""打招呼的简单程序NAME总共COUNT次。"""forxinrange(count):click.echo('Hello%s!'%name)https://click.palletsprojects...Typerapp=typer.Typer()@app.command()defhello(name:str):typer.echo(f"Hello{name}")@app.command()defgoodbye(name:str,formal:bool=False):ifformal:typer.echo(f"GoodbyeMs.{name}.祝你有美好的一天。”)else:typer.echo(f"Bye{name}!")https://typer.tiangolo.com/