我有一个可以以两种不同方式使用的 python 命令行脚本。
第一种情况是这样的:
script.py -max MAX -min MIN -delta DELTA
其中 -max 和 -min 是必需的参数,-delta 是可选的。
第二种情况是:
script.py some_file.txt -f
其中 some_file.txt 是必需的位置参数,-f 是可选的。
我如何使用任何 Python 命令行参数解析器(argparse、optparse、getopt 等)实现它?
更新:脚本只做一件事——抓取网站。但是它的运行时间很长。在第一种情况下,我们运行新的抓取 session ,而在第二次加载之前保存的 session 中并继续抓取。
请您参考如下方法:
我会这样做:
parser = OptionParser()
parser.add_option("-max", dest="max")
parser.add_option("-min", dest="min")
parser.add_option("-delta", dest="delta")
parser.add_option("-f", dest="f_thing", action="store_true")
(options,args) = parser.parse_args()
if not args:
if not options.max or not options.min:
parser.error("Please provide a max and min value.")
else:
yourfunction(options, args) # without some_file.txt name
else:
yourfunctions(options, args) # pass the some_file.txt name
我不确定这是否是您想要的 100%,但我认为这个问题有点太接近了。这会让您对如何实现目标有所了解。
