gpt4 book ai didi

python - 是否有自动检测数据类型的 argparse 模块

转载 作者:行者123 更新时间:2023-12-02 02:41:02 25 4
gpt4 key购买 nike

是否有任何其他 python 包或 argparse 是否具有我期待的以下功能

arg_parser.add_argument("-v", "--some_data", required=True,
help="data id(int) or vehicle name (str) ")
input -v 123 output type(args.some_data) --> int
input -v abc output type(args.some_data) --> str
input -v a12 output type(args.some_data) --> str

最佳答案

您可以定义自定义 type尝试解析一个 int,如果失败,则返回字符串。

(为简单起见,我将您的选项作为此示例中的参数。)

import argparse

def int_or_str(s):
try:
return int(s)
except ValueError:
return s

parser = argparse.ArgumentParser()
parser.add_argument("x", type=int_or_str, help="int or str")
print(parser.parse_args(['123'])) # -> Namespace(x=123)
print(parser.parse_args(['hello'])) # -> Namespace(x='hello')

但是,请注意 int 会忽略前导和尾随空格,因此例如 int(' 1 ') 会成功。

print(parser.parse_args([' 1 ']))  # -> Namespace(x=1)

关于python - 是否有自动检测数据类型的 argparse 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59495716/

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