【发布时间】:2012-03-21 10:33:12
【问题描述】:
我现在有以下代码:
parser = argparse.ArgumentParser(prog='Tempus')
ex_group = parser.add_mutually_exclusive_group(required=True)
## Miscellaneous but needed args
parser.add_argument('--mode', type=str, choices=['xml', 'text', 'term'],
dest='mode', required=True, help='export mode')
parser.add_argument('-v', '--verbose', action='store_true',
dest='verbose', help='enable verbose/debug mode')
# Input methods
ex_group.add_argument('--i', action='store_true',
dest='interactive', help='enter interactive mode')
ex_group.add_argument('--p', metavar='I', type=float,
dest='integer', help='percentage to use')
args = parser.parse_args()
但是,当我以任何顺序传递所需的参数时,我得到了错误:
Tempus: error: argument --mode is required
即使我通过了那个论点,也会发生这种情况。有什么办法可以解决这个问题?
谢谢!
编辑:谢谢大家,我得到了它的工作,结果是在不传递参数之前没有先指定python exe就执行它。
另一个简单的问题:是否可以在我的代码中创建一个类似于 --mode 的参数,但让一个附加参数传递给其中一个选项?
例如,有一个命令,如 --input,它可以接受两个参数“整数”和“交互式”,但我也可以将一个数字传递给 --input 整数命令?所以命令将显示: --input integer 23 例如?这可能吗?
【问题讨论】:
-
出现此错误的示例调用是什么?
-
为我工作:
python test.py --mode text --i. -
@Xion: tempus_args.py --mode term --i
-
也适合我。 Callum,您确定您发布的代码与您调用的确切脚本中的代码相同吗?
-
这是完全相同的代码。这是full script