是否可以在python3的argparse中添加'-'标志?

问题描述

dnsgen之类的工具可同时使用这两种类型的选项:
毫无争议:
cat domains.txt | dnsgen - | someotherprogram
带有参数:
dnsgen -w wordlist filename.txt

我可以让我的程序使用不带参数(即-样式)的dnsgen -吗?可以说我的代码是这样,它可以接收来自stdin和wordlist的数据

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-w','--wordlist',help="Wordlist")
argv = parser.parse_args()
my_awesome_function(argv.wordlist)

因此,我的代码仅从单词列表中读取。我该如何使用-参数样式通过单词列表和stdin来做到这一点?

解决方法

可能不是一个很好的解决方案,但是,您可以分配一个虚拟变量并将其设置为store_true,如下所示。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-',"--_",action='store_true')
parser.add_argument('-w','--wordlist',help="Wordlist")
argv = parser.parse_args()
my_awesome_function(argv.wordlist)