如何使python脚本严格检查传入的参数?

2024-10-01 15:46:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的脚本,它只解析在命令行中传递的参数

import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='My test script')
    parser.add_argument('-somearg', dest='somearg', type=str, required=True, help='Help yourself')
    parser.add_argument("-somemorearg", dest='somemorearg', action='store_true', help='Help yourself')   # Treated as boolean if passed in
    parser.add_argument("-somemoreargagain", dest='somemoreargagain', action='store_true', help='Help yourself') # Treated as boolean if passed in
    args = parser.parse_args()

    print('Your input was:         ' + args.somearg)
    if args.somemorearg == True:
        print('Second parameter is true: ')
    if args.somemoreargagain == True:
        print('Second parameter is true: ')

以下是我调用脚本的方式,它可以工作:

python my_script.py -somearg xyz -somemorearg -somemoreargagain

以上是伟大的
但是如果我在调用我的脚本时有如下轻微的打字错误,那也行吗?这是python的奇怪行为!注意,在下面的调用中,我缺少最后一个参数中的n,它应该是somemoreargagain

python my_script.py -somearg xyz -somemorearg -somemoreargagai

上述行为在python中是默认的吗?我想使脚本在参数检查中严格

如果传入的参数不准确匹配,如何使脚本抛出错误?我希望脚本只接受-somearg-somemorearg-somemorearg

我正在使用Python 3+


Tags: 脚本addtrueparser参数ifscripthelp
1条回答
网友
1楼 · 发布于 2024-10-01 15:46:09

使用部分参数名称可以与argparse一起使用,只要它足够长,对于一个参数来说是唯一的。如果键入python my_script.py -somearg xyz -somemorear,同样的方法将不起作用,因为-somemorear将是两个参数的不明确名称

相关问题 更多 >

    热门问题