为了账号安全,请及时绑定邮箱和手机立即绑定

使用 argparse 解析值的最常见方法

使用 argparse 解析值的最常见方法

繁华开满天机 2023-07-27 16:16:30
在使用它时argparse,这是我第一次遇到“命名空间”对象。处理这些对象的最常见方法是什么?例如,如果我有这个初始化代码:import argparseparser = argparse.ArgumentParser(description='Dedupe library.', allow_abbrev=True)parser.add_argument( '-a', '--all', nargs='+', type=int, help='(Optional) Enter one or more IDs.')parser.add_argument( '-r', '--reverse', nargs='+', help='(Optional) Enter one or more IDs.')似乎该库在每个--long选项上添加了一个属性(如果存在,否则为短-s选项),因此类似以下内容的作品:# test.pyp = parser.parse_args()print (p.all, p.reverse)# -------------------------------------$ python test.py -a 2 3 -r asdf# [2, 3] ['asdf']这是处理输出的最常见方法吗argparse?或者通常是如何完成的?
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

每个参数都执行某种由 的action参数指定的操作add_argument。默认是一个store动作。


每个store操作都会将一个(或多个)值保存到结果命名空间中的属性中。dest您可以使用参数 to指定哪个属性add_argument,但更常见的是,该名称是从第一个长选项名称(或第一个短名称,如果没有长名称)推断出来的。


请注意,您可以有多个影响同一属性的选项。常见用途是使用多个store_const操作将不同的硬编码值保存到单个属性。


p.add_argument("--high", action='store_const', dest='level', const='high')

p.add_argument("--med", action='store_const', dest='level', const='medium')

p.add_argument("--low", action='store_const', dest='level', const='low')

您可以将其视为为采用显式参数来指定级别的选项提供一系列别名:


p.add_argument("--level", choices=['high', 'medium', low'])

其中--high与 具有相同的效果--level high。


>>> p.parse_args(["--level", "high"]).level

'high'

>>> p.parse_args(["--high"]).level

'high'


查看完整回答
反对 回复 2023-07-27
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信