Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python语法分析困难_Python 3.x_Command Line Arguments - Fatal编程技术网

Python 3.x Python语法分析困难

Python 3.x Python语法分析困难,python-3.x,command-line-arguments,Python 3.x,Command Line Arguments,我正在尝试使用内置Python模块argparse为我的程序创建一个命令行参数解析器。我希望用户能够正常运行我的程序,或者运行演示。要运行演示,需要一个演示编号,这将是一个命令行参数。因此,基本上,命令行参数可以是这些格式之一 python3 blah.py normal python3 blah.py演示版 如何允许用户使用其中一个选项,但不能同时使用这两个选项?另外,在使用演示选项而不是使用普通选项时,如何设置所需的演示编号 提前感谢。您可以使用互斥组(我已将参数更改为-demo num

我正在尝试使用内置Python模块
argparse
为我的程序创建一个命令行参数解析器。我希望用户能够正常运行我的程序,或者运行演示。要运行演示,需要一个演示编号,这将是一个命令行参数。因此,基本上,命令行参数可以是这些格式之一

  • python3 blah.py normal
  • python3 blah.py演示版
如何允许用户使用其中一个选项,但不能同时使用这两个选项?另外,在使用演示选项而不是使用普通选项时,如何设置所需的演示编号


提前感谢。

您可以使用互斥组(我已将参数更改为-demo number和-normal):


非常感谢。另外,如何使使用这两个选项都是非法的?@Anonymous1847即使您没有传递任何参数或参数的1,这也是有效的。只有当您同时使用这两个参数时,python.exe d:\arguments.py-normal-demo 3Yes才会显示无效。我想问的是,如何要求用户使用互斥组中的一个(确切地说是一个)参数。
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('-demo', action='store',
                    dest='demonum',
                    help='demo execution')
group.add_argument('-normal', action='store_true',
                    help='normal execution')
parsed = parser.parse_args()
print(parsed.demonum)
print(parsed.normal)