相关疑难解决方法(0)

argparse - 禁用相同的参数出现

我试图在一个命令行中使用argparse禁用相同的参数出现

./python3 --argument1=something --argument2 --argument1=something_else
Run Code Online (Sandbox Code Playgroud)

这意味着这应该引发一个错误,因为argument1的值被覆盖,默认情况下,argparse只是覆盖了值并且继续没有发生任何事情......有什么聪明的方法如何禁用这种行为?

python argparse python-3.x

6
推荐指数
1
解决办法
1644
查看次数

Python argparse:强制列表项唯一

能够使用choices=servers下面的方法来验证列表项是很好的。

servers = [ "ApaServer", "BananServer", "GulServer", "SolServer", "RymdServer", "SkeppServer", "HavsServer", "SovServer" ]
parser = argparse.ArgumentParser()
parser.add_argument('-o', '--only', nargs='*', choices=servers, help='Space separated list of case sensitive server names to process')
Run Code Online (Sandbox Code Playgroud)

是否可以强制列表中的项目是唯一的,从而不允许重复?

python argparse

3
推荐指数
1
解决办法
2390
查看次数

多次指定参数时显示错误

当多次指定相同的参数时,默认的 argparse 行为是最后指定的值“获胜”,覆盖先前的值。我希望 argparse 在多次指定同一参数时显示错误,而不是默默地覆盖第一个指定的值。

那怎么办呢?

我当前的代码:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
    '-t', '--test',      # either of this switches
    type=str,            # parameter is string
    dest='test',         # store in 'test'.
    required=True        # required
)
Run Code Online (Sandbox Code Playgroud)

调用脚本:

myscript.py -t hello -t world
Run Code Online (Sandbox Code Playgroud)

没有错误,test才有价值世界。我希望 argparse 在这种情况下显示错误,因为从我的角度来看,默认行为很容易出错。

python argparse

2
推荐指数
1
解决办法
791
查看次数

标签 统计

argparse ×3

python ×3

python-3.x ×1