python 命令行解析模块_python:argparse命令行解析模块详解

argparse命令行解析模块学习

import argparse

parser = argparse.ArgumentParser() #类似于初始化吧

parser.parse_args() #解析参数

//默认存在-h,--help参数

输出如下

python test.py --help

usage: prog.py [-h]

optional arguments:

-h, --help show this help message and exit

接下来

import argparse

parser = argparse.ArgumentParser()

parser.add_argument("echo") #定义了一个名为echo的参数,默认必选

args = parser.parse_args()

print(args.echo)

//在这里echo是positional arguments,中文翻译是定位参数,也就是不需要使用-或者--就可用

输出示例

python test.py flag

flag

--

接下来看下面这段代码

import argparse

parser = argparse.ArgumentParser()

parser.add_argument("--verbosity", help="increase output verbosity") #help参数,是你输入-h或者--help时会显示的这个--verbosity的帮助信息

args = parser.parse_args()

if args.verbosity: #这里就是判断参数是否存在,如果存在就执行下面语句,就可以用来实现一些功能

print("verbosity turned on")

然后看输出

python test.py --verbosity test

verbosity turned on

//这里必须指定一个输入,这里我的输入是test,我还打印了下args.verbosity 输出是test

再看改了点的

import argparse

parser = argparse.ArgumentParser()

parser.add_argument("--verbosity", help="increase output verbosity",action="store_true") #增加了一个action属性

args = parser.parse_args()

if args.verbose:

print("verbosity turned on")

//这个直接python --verbosity 就可以运行if后面的语句,而不用指定参数

-v短参数

import argparse

parser = argparse.ArgumentParser()

parser.add_argument("-v", "--verbose", help="increase output verbosity",action="store_true")

args = parser.parse_args()

if args.verbose:

print("verbosity turned on")

还可以指定type,默认参数type为str

import argparse

parser = argparse.ArgumentParser()

parser.add_argument("square", help="display a square of a given number",type=int)

args = parser.parse_args()

print(args.square**2)

//这就要求输入必须参数必须是int,否则会报错

还一个属性choices=[],定义可选项,再用if语句判断,示例如下

import argparse

parser = argparse.ArgumentParser()

parser.add_argument("square", type=int,

help="display a square of a given number")

parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],

help="increase output verbosity")

args = parser.parse_args()

answer = args.square**2

if args.verbosity == 2:

print ("the square of {} equals {}".format(args.square, answer))

elif args.verbosity == 1:

print ("{}^2 == {}".format(args.square, answer))

else:

print (answer)

属性default,可以指定当不给出参数时,默认的参数

整段程序的帮助信息

parser = argparse.ArgumentParser(description="calculate X to the power of Y")

还一个互斥组

group = parser.add_mutually_exclusive_group()

往这里添加的参数不能同时出现,最多出现一个,或者都不出现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值