问题描述
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)