Python argparse 使用 switch 来运行 if 语句

rwc*_*and 5 python python-2.7

如何使 -c 开关不需要输入?然后,如果在运行 test.py 脚本时指定了 -c 开关,则它应该运行此 if 语句并创建数据库。我不是专家,所以我希望有一个代码示例。

parser = argparse.ArgumentParser(prog='test.py', description='Testing Script')
parser.add_argument('-d', '--device', nargs= '*', type=str, help="Device IP")
parser.add_argument("-c", '--createDatabase', nargs= '?', help="Create Database")
parser = menu.parse_args()

if args.c:
    print 'It Worked!, now creating database'

    con1 = MySQLdb.connect("localhost","root","testing")
    query = con1.cursor()
    query.execute("SET sql_notes = 0; ")
    query.execute("CREATE DATABASE IF NOT EXISTS test CHARACTER SET utf8 COLLATE utf8_general_ci;")
    con1.commit()
    con1.close()
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 6

使用一个store_true动作:

parser.add_argument("-c", '--createDatabase', action="store_true", help="Create Database")
Run Code Online (Sandbox Code Playgroud)

这将args.c默认为,如果该选项存在,False则更改为。True-c