Python---argparse用法

Python—argparse用法

初步使用

import argparse

parser = argparse.ArgumentParser(description=“your messages”)  # 创建解析对象
# description 可以用于插入描述脚本用途的信息,也可以为空

parser.add_argument() #在对象中添加命令行参数和选项
parser.parse_args() # 进行解析

>> python demo.py -h # 查看帮助文档

位置参数 positional arguments

位置参数默认必选,需输入;若不输入则报错。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("pos_param", help="参数描述信息")
args = parser.parse_args()
print(args.pos_param)

>> python demo.py hello
>> hello

可选参数 optional arguments

-指定短参数,如 -h
--指定长参数,如 --help

这两种方式可以同存,也可以只存在一个。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-v", help="添加输出 verbosity")
args = parser.parse_args()
if args.v:
    print("打开 verbosity")

>> python demo.py -v hello
>> hello
import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("--verbosity", help="添加输出 verbosity")
args = parser.parse_args()
if args.verbosity:
    print(args.verbosity)

>> python demo.py --verbosity hello
>> hello

同时存在两个参数(长 + 短),可在命令行中通过 -v 或 --verbosity 来为参数赋值。
但args中保存的参数为长参数verbosity,无短参数v,调用args.v 将报错

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-v", "--verbosity", help="添加输出 verbosity")
args = parser.parse_args()
if args.verbosity:
    print(args.verbosity)

>> python demo.py -v hello
或
>> python demo.py --verbosity hello
>> hello

action = “store_true”

添加action = “store_true” 后,无需指定参数值;若命令行中出现 --verbosity,则其值为True

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("--verbosity", help="添加输出 verbosity", action = "store_true")
args = parser.parse_args()
if args.verbosity:
    print(args.verbosity)

>> python demo.py --verbosity
>> True

参数类型type

默认的参数类型为str,若要进行数学计算,则需要在参数解析后进行类型转换。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-x", type=int, help="输入数字")
args = parser.parse_args()

y = args.x
print(y, type(y))
>> python demo.py -x 3
>> 3 <class 'int'>

可选值 choices=[]

action可定义参数的默认值为True和False;若要限制某个值的取值范围,可使用choices。

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-x", type=int, choices=[1, 2, 3], help="输入数字")
args = parser.parse_args()

y = args.x
print(y, type(y))

>> python demo.py -x 4
>> error: argument -x: invalid choice: 4 (choose from 1, 2, 3)

>> python demo.py -x 3
>> 3 <class 'int'>

互斥参数

通过创建互斥组,使得互斥组中的参数只能出现一个

import argparse

parser = argparse.ArgumentParser() 
# 添加互斥组
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", action="store_true")
group.add_argument("-q", action="store_true")

parser.add_argument("-x", action="store_true")
args = parser.parse_args()

if args.q:
    print(args.q)

if args.v:
    print(args.v)


>> python demo.py -h
>> usage: demo.py [-h] [-v | -q] [-x]

>> python demo.py -v -q	
>> error: argument -q: not allowed with argument -v

>> python demo.py -v
>> True

参数默认值

import argparse

parser = argparse.ArgumentParser() 
parser.add_argument("-x", type=int, default=1, help="输入数字")
args = parser.parse_args()

if args.x:
    print(args.x)

>> python demo.py
>> 1

>> python demo.py -x 3
>> 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误提示通常表示在安装 argparse-addons 时出现了问题,可能是由于缺少某些依赖项或者编译环境配置不正确导致的。以下是一些可能的解决方法: 1. 安装编译环境:如果您使用的是 Linux 或 macOS 等类 Unix 系统,可以尝试安装编译环境,例如 gcc、make、python-devel 等。具体的安装命令可能因系统版本和发行版而异,可以根据您的具体情况进行搜索。例如,在 Ubuntu 系统中,可以使用以下命令安装 gcc 和 make: ``` sudo apt-get install gcc make ``` 2. 安装依赖项:argparse-addons 可能依赖其他的 Python 模块,可以尝试手动安装这些模块。例如,可以使用 pip 命令安装 setuptools 和 wheel: ``` pip install setuptools wheel ``` 3. 升级 setuptools:argparse-addons 可能需要较新版本的 setuptools 支持,可以尝试升级 setuptools 到最新版本: ``` pip install --upgrade setuptools ``` 4. 清除缓存:有时候,可能是由于缓存文件损坏导致安装失败,可以尝试清除 pip 的缓存: ``` pip cache purge ``` 5. 换源:如果您使用的是国内的网络环境,可能会遇到连接 PyPI(Python Package Index)的速度较慢或者无法连接的问题。可以尝试使用国内的 PyPI 镜像源,例如阿里云、清华大学等: ``` pip install -i https://mirrors.aliyun.com/pypi/simple/ argparse-addons pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ argparse-addons ``` 希望这些方法可以帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值