#author("2023-09-27T09:21:43+08:00","default:Admin","Admin") #author("2023-09-27T09:23:46+08:00","default:Admin","Admin") [[Python]] &color(red){※This article is based on Python 3.7.3}; #contents * 概要 [#f7ba0a6c] argparse模块可以让我们轻松编写用户友好的命令行接口。它程序定义需要哪些参数,然后 argparse 将找出如何从 sys.argv 解析出这些参数。argparse模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。 例程 #codeprettify{{ import sys import argparse # print(sys.argv) # 1.先创建解释器 parser=argparse.ArgumentParser(description="解析命令行") # 2.添加参数 parser.add_argument("--a",type=int,default=5,help="操作数 A") parser.add_argument("--b",type=int,default=6,help="操作数 B") parser.add_argument("method",type=str,help="方法") parser.add_argument("--verbose",action="store_true",help="Print Message") # 3.解析命令行 args = parser.parse_args() print(args) print(args.a,type(args.b)) }} * 使用 [#a70c4219] #codeprettify{{ parser = argparse.ArgumentParser() parser.add_argument("-usb", help="USB index") args = parser.parse_args() #判断是否传参 if args.usb != None: #注意参数为字符串,并且里面可能混有空格 usb= int(trim(args.usb)) print("Use Index:" , str(usb) + ".") }} * 参数冲突解析 [#na6dce29] 有时候,我们的程序可能有一些参数是互斥的,也就是说不能同时出现。argparse 提供了 add_mutually_exclusive_group() 方法来创建一个互斥参数组,然后在这个组上添加的参数将是互斥的: #codeprettify{{ import argparse parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group() group.add_argument('--foo', action='store_true') group.add_argument('--bar', action='store_true') args = parser.parse_args() }} 在这个例子中,我们创建了一个互斥参数组,并在这个组上添加了两个参数 --foo 和 --bar,这两个参数是互斥的,也就是说不能同时出现。 #hr(); コメント: #comment_kcaptcha