我有一个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等)实现该功能?

更新:脚本只做一件事-抓取网站。但是操作时间很长。在第一种情况下,我们运行新的抓取会话,而在第二次加载中,我们先保存了先前的会话,然后继续抓取。

最佳答案

我会这样做:

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%,但是我认为这个问题有点太过紧密了。那会给您一些想法,如何实现您的目标。

关于python - Python命令行脚本。有两种使用场景。如何实现参数解析?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8565119/

10-15 14:44