argparse 输入范围函数
argparse input range function
我需要在命令行中传递一个函数并使用 argparse 进行解析。
我该怎么做?
例如。
python program.py --params a=range(1, 10, 1), b=range(2, 5, 1)...
我测试过:
parser.add_argument('-p', "--params", type=json.loads)
但是当我尝试启动 cmd 时:
python program.py --p {"a": range(1, 10, 1}
returns 这个错误:
error: argument -p/--params: invalid loads value: '{"a": range(1,10,1)}'
您应该为此创建自己的自定义函数并将其传递给 type
例如
>>> def hyphenated(string):
... return '-'.join([word[:4] for word in string.casefold().split()])
...
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument('short_title', type=hyphenated)
>>> parser.parse_args(['"The Tale of Two Cities"'])
Namespace(short_title='"the-tale-of-two-citi')
更多信息:here
我需要在命令行中传递一个函数并使用 argparse 进行解析。 我该怎么做?
例如。
python program.py --params a=range(1, 10, 1), b=range(2, 5, 1)...
我测试过:
parser.add_argument('-p', "--params", type=json.loads)
但是当我尝试启动 cmd 时:
python program.py --p {"a": range(1, 10, 1}
returns 这个错误:
error: argument -p/--params: invalid loads value: '{"a": range(1,10,1)}'
您应该为此创建自己的自定义函数并将其传递给 type
例如
>>> def hyphenated(string):
... return '-'.join([word[:4] for word in string.casefold().split()])
...
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument('short_title', type=hyphenated)
>>> parser.parse_args(['"The Tale of Two Cities"'])
Namespace(short_title='"the-tale-of-two-citi')
更多信息:here