像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)
所以,我的代码只能从单词列表中读取。如何使用-
参数样式通过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)