gpt4 book ai didi

python - 如何在 python ArgumentParser.add_argument() 中包含正则表达式选项?

转载 作者:行者123 更新时间:2023-12-05 05:17:50 24 4
gpt4 key购买 nike

我将如何在 choices 中包含正则表达式? Python 的 ArgumentParser.add_argument() 方法的 kwarg?

例如,假设我想创建自己的自定义挂载程序:

# file: my_mount.py
from argparse import ArgumentParser

# some simple choices to help illustrate
option_choices = {'ro|rw', 'user=.*', 'do=[a-z]{1,10}', 'allow_other'}

if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument('-s', '--share', dest='share')
parser.add_argument('-m', '--mount-point', dest='mnt_pt')
parser.add_argument('-o', dest='options', action='append',
choices=option_choices,
help='Options for mounting - see choices '
'expressions set for valid options')

args, _ = parser.parse_known_args()
# do some fancy stuff to do with mounting filesystems...

我的想法是我可以根据一组简单的正则表达式过滤掉有效的选项,尤其是在所有可能性中手动编码是一件苦差事,例如{'do=nothing', 'do=something', 'do=anything'...} , 但在调用 python my_mount.py -h 时也可以轻松保留选择列表.我最初的想法是定制一个 action , 但这似乎与指定 choices 不兼容在add_argument()

最佳答案

我在看一个类似的问题并决定使用 type进行验证。

这允许您使用可调用函数来执行验证。因此,不要使用选项,而是使用类型来指定一个可调用项,而不是在其中匹配您的正则表达式。

如果您想将选择保留在某处的容器中,那么您也可以这样做。或者,如果您必须仅使用选项,您可以定义一个自定义容器来验证输入。

关于python - 如何在 python ArgumentParser.add_argument() 中包含正则表达式选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48687804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com