如何解决使用argparse解析值的最常用方法
在使用argparse
时,这是我第一次遇到“名称空间”对象。使用这些对象的最常用方法是什么?例如,如果我有以下初始化代码:
import argparse
parser = 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',help='(Optional) Enter one or more IDs.')
似乎该库在每个--long
选项上添加了一个属性(如果存在,否则为简短的-s
选项),因此类似以下内容的工作方式:
# test.py
p = parser.parse_args()
print (p.all,p.reverse)
# -------------------------------------
$ python test.py -a 2 3 -r asdf
# [2,3] ['asdf']
这是处理argparse
输出的最常用方法吗?还是通常这样做?
解决方法
每个参数都执行某种操作,由action
的{{1}}参数指定。默认值为add_argument
操作。
每个store
操作将一个(或多个)值保存到结果命名空间中的一个属性。您可以使用store
的{{1}}参数指定哪个属性,但是更常见的是,该名称是从第一个长选项名称(如果没有长名称,则是第一个短名称)推断出来的。>
请注意,您可以具有多个影响同一属性的选项。一种常见用法是具有多个dest
操作,这些操作将不同的硬编码值保存到单个属性中。
add_argument
您可以认为这是为使用显式参数指定级别的选项提供一系列别名:
store_const
其中p.add_argument("--high",action='store_const',dest='level',const='high')
p.add_argument("--med",const='medium')
p.add_argument("--low",const='low')
与p.add_argument("--level",choices=['high','medium',low'])
具有相同的作用。
--high
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。