框架argparse - 检查是否设置了标志

Bar*_*cki 3 python python-2.7 argparse

我想以这种方式使用我的脚本:python script.py -x现在我使用这个命令运行它python script.py -xy

我的代码:

parser = ArgumentParser()
parser.add_argument('-x', '--x', dest="x", default="n")
options = parser.parse_args()
if option.x == 'y':
    f()
Run Code Online (Sandbox Code Playgroud)

可以用这种方式编写它

python script.py -x

parser = ArgumentParser()
parser.add_argument('-x', '--x', dest="x")
options = parser.parse_args()
if isset(option.x):
    f()
Run Code Online (Sandbox Code Playgroud)

jon*_*rpe 8

只需使用'store_true'动作:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-x', action='store_true')
Run Code Online (Sandbox Code Playgroud)

那么你可以简单地测试一下这个论点的真实性:

options = parser.parse_args()
if options.x:
    f()
Run Code Online (Sandbox Code Playgroud)

在使用中,只需打印该参数是否真实:

C:\Python27>python so.py
x is not set

C:\Python27>python so.py -x
x is set
Run Code Online (Sandbox Code Playgroud)