Python命令行解析—— argparse

本文深入讲解了Python标准库中的Argparse模块,详细介绍了如何使用Argparse解析命令行参数,包括定位参数、可选参数的设置,以及不同action的用法,如store、store_const、store_true/store_false等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本使用

import argparse
parser=argparse.ArgumentParser()
parser.add_argument("echo",help="echo the string")
args=parser.parse_args()
print args.echo

以上程序简介:
1、 import argparse导入模块
2、创建解析器对象ArgumentParser 对象名为parser
3、add_argument()方法 ,可以给该文件添加执行参数 如python nn.py -t 20
4、参数类型
定位参数(必选参数):
parser.add_argument(“echo”,help=“echo the string”)
可选参数(可选参数):
parser.add_argument("–verbosity", help=“increase output verbosity”)
5、常用参数
add_argument()常用的参数:
dest:如果提供dest,例如dest=“a”,那么可以通过args.a访问该参数
default:设置参数的默认值
action:参数出发的动作
store:保存参数,默认
store_const:保存一个被定义为参数规格一部分的值(常量),而不是一个来自参数解析而来的值。
store_ture/store_false:保存相应的布尔值
append:将值保存在一个列表中。
append_const:将一个定义在参数规格中的值(常量)保存在一个列表中。
count:参数出现的次数
parser.add_argument("-v", “–verbosity”, action=“count”, default=0, help=“increase output verbosity”)
version:打印程序版本信息
type:把从命令行输入的结果转成设置的类型
choice:允许的参数值
help:参数命令的介绍

parser.add_argument("-v", “–verbosity”, type=int, choices=[0, 1, 2], help=“increase output verbosity”)

备注:如果不添加 “type” ,argparse会将输入当作字符串处理。所以如果需要的字符类型不是字符串 切记指定类型

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("double", help="get the duble number you input",
                    type=int)
args = parser.parse_args()
print args.double*2

所以
$ python nn.py 4
8

### Python 命令行指令及其用法 #### 使用 `fire` 库构建命令行工具 通过使用 Google 开发的轻量级库 Fire,可以轻松地将任何 Python 函数转换成命令行接口。只需安装并导入此库,在程序入口处调用 `Fire()` 即可自动解析传入参数[^2]。 ```python import fire def greet(name="World"): """Greets the named person.""" return f'Hello {name}!' if __name__ == '__main__': fire.Fire(greet) ``` 执行上述脚本时可以通过如下方式传递参数: ```bash python script.py --name=Alice ``` 这将会打印出 "Hello Alice!" 的消息给用户。 #### 解析特定命令行选项的例子 对于更复杂的场景,比如指定批次大小、数据集路径以及其他配置项,则可以直接定义相应的函数签名,并利用内置的支持来处理这些输入值[^1]。 ```python import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('-b', type=int, help='batch size') parser.add_argument('--dataset', required=True, help='path to dataset') args = parser.parse_args() print(f"Batch Size: {args.b}, Dataset Path: {args.dataset}") ``` 运行这段代码片段的方式类似于下面这样: ```bash python demo_arg.py -b=2 --dataset=/project/dataset --option1 --option2 ``` 这里 `-b`, `--dataset` 都是用来接收来自终端用户的自定义设置;而像 `--option1` 和 `--option2` 这样的标志位则表示开启某些特性开关而不必提供额外的数据。 #### 多条命令在同一行内书写的方法 当需要在一个单独的 shell 行中连续发出多条独立却又相互关联的小型命令序列时,可以在每两条之间放置分号(`;`)作为分割符[^4]。 ```bash echo Hello ; echo World ``` 需要注意的是,虽然 Python 语法内部并不强制要求结尾加分号,但在这种情况下它是必需品——用于指示当前表达式的终止以及下一个即将开始的位置。 #### 查找模块加载路径 为了查看 Python 当前环境中可用的标准库位置和其他已知站点包所在文件夹列表,可通过交互模式下的解释器快速获取该信息[^3]: ```python >>> import sys >>> from pprint import pprint >>> pprint(sys.path) ['', '/usr/local/Python3.7/lib/python37.zip', '/usr/local/Python3.7/lib/python3.7', '/usr/local/Python3.7/lib/python3.7/lib-dynload', '/home/user/.local/lib/python3.7/site-packages', '/usr/local/Python3.7/lib/python3.7/site-packages'] ``` 以上就是关于如何运用不同类型的命令行指令与 Python 结合使用的介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值