Python中的argparse模块是一个命令行参数解析器,它可以让开发者轻松地编写用户友好的命令行界面。
argparse模块可以自动从命令行中解析出参数,将它们转化为Python中的对象,并提供一些额外的功能,如自动生成帮助文档、参数类型检查等。
argparse模块的核心是ArgumentParser类,使用这个类可以定义程序需要接收的参数和选项.

使用argparse的四个步骤
导入argparse包 ——import argparse
创建 ArgumentParser() 对象
调用add_argument() 方法添加参数
解析命令行的参数 ——使用 parse_args() 解析添加的参数

方法add_argument的参数:

def add_argument(self,
                 *name_or_flags: str,
                 action: Union[str, Type[Action]] = ...,
                 nargs: Union[int, str] = ...,
                 const: Any = ...,
                 default: Any = ...,
                 type: Union[(str) -> _T, (str) -> _T, FileType] = ...,
                 choices: Iterable[_T] = ...,
                 required: bool = ...,
                 help: Optional[str] = ...,
                 metavar: Union[str, Tuple[str, ...], None] = ...,
                 dest: Optional[str] = ...,
                 version: str = ...,
                 **kwargs: Any) -> Action

例子

parser=argparse.ArgumentParser("python")
parser.add_argument("-p", "--port",help="port to listen",type=int,nargs=5,dest="ports")
args=parser.parse_args()
print(args.ports,type(args.ports))

python argparse 知乎 python argparse nargs_python argparse 知乎


解释:

-p,–port,参数名称,help:帮助信息,type:参数被转换类型,nargs:读取命令行参数个数,多个参数被转化为列表,dest:解析后的参数名称

parser.add_argument("-p", "--port",help="port to listen",default=8080,type=int,dest="ports")
    args=parser.parse_args()
    print(args.ports,type(args.ports))

default:默认值

python argparse 知乎 python argparse nargs_版本号_02

parser.add_argument("-p", "--port",help="port to listen",required=True,type=int,dest="ports")

required:是否为必选参数或可选参数

python argparse 知乎 python argparse nargs_开发语言_03

parser=argparse.ArgumentParser("python")
    parser.add_argument("-p", "--port",help="port to listen",required=True,type=int,dest="ports")
    parser.add_argument("-f","--flags",action="store_true")
    args=parser.parse_args()
    print(args.ports,type(args.ports),args.flags)

action: 当带有store_true时,你传入对应参数,则参数为真,否则为假,store_flase时则相反

python argparse 知乎 python argparse nargs_版本号_04

parser.add_argument("-l",choices="12345")
choices,参数l的取值只能是12345,1,2,3,4,5,12,123,1234等,不能是其它,不能乱序

python argparse 知乎 python argparse nargs_版本号_05

metavar是一个参数,用于指定在帮助信息中显示的参数名称。

例如,如果你有一个参数叫做–name,你可以用metavar='NAME’来改变它在帮助信息中的显示。
parser.add_argument("-l",choices="12345",help="list to choices",metavar="lists")

如图:在帮助信息中,参数l显示的名称为lists

python argparse 知乎 python argparse nargs_版本号_06

const参数是用于保存一些常数值,不需要用命令行中读取,通常与nargs、action配合使用。
例如,你可以用action='store_const来把const值存储到一个属性中。或者,你可以用nargs='?'来表示参数可以有一个值或者没有值,如果没有值,就用const值代替。

parser.add_argument("-n", "--number", nargs='?', const=10, type=int, help='use a number')
parser.add_argument('-t', action='store_const', const="TTT", default="xxxx")

python argparse 知乎 python argparse nargs_版本号_07

version参数是用于显示程序的版本号,可以用action='version’来指定。
例如,你可以用下面的代码来添加一个-v参数,当用户输入-v或者–version时,就会显示程序的名称和版本号:
parser.add_argument('-v', '--version', action='version', version='1.21.0')

python argparse 知乎 python argparse nargs_python_08


至此,add_argument的参数使用方法演示完毕。