小编典典

需要简单的 argparse 示例:1 个参数,3 个结果

all

argparse python
模块
文档虽然我敢肯定,但对于我小小的初学者大脑来说,现在掌握的内容太多了。我不需要在命令行上进行数学运算,也不需要干预屏幕上的格式行或更改选项字符。我想要做的就是
“如果 arg 是 A,则执行此操作,如果 B 执行此操作,如果以上都没有显示帮助并退出”


阅读 91

收藏
2022-03-06

共1个答案

小编典典

我对原始问题的理解是双重的。首先,就最简单的 argparse
示例而言,我很惊讶我在这里没有看到它。当然,为了简单起见,这也是开销很小的开销,但它可能会让你开始。

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("a")
args = parser.parse_args()

if args.a == 'magic.name':
    print 'You nailed it!'

但是现在需要这个位置参数。如果你在调用这个程序时忽略它,你会得到一个关于缺少参数的错误。这使我进入原始问题的第二部分。Matt Wilkie
似乎想要一个没有命名标签的 可选 参数( –option 标签)。我的建议是修改上面的代码如下:

...
parser.add_argument("a", nargs='?', default="check_string_for_empty")
...
if args.a == 'check_string_for_empty':
    print 'I can tell that no argument was given and I can deal with that here.'
elif args.a == 'magic.name':
    print 'You nailed it!'
else:
    print args.a

很可能有一个更优雅的解决方案,但这很有效并且是极简主义的。

2022-03-06