栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用argparse创建变量键/值对(python)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用argparse创建变量键/值对(python)

我要尝试的第一件事是使用

parse_known_args
其他参数,并
extras
使用on例程处理列表。添加’–
conf-‘处理
argparse
将更加繁琐。

argv = '--conf-key-1 value1 --conf-key-2 value2'.split()p = argparse.ArgumentParser()args, extras = p.parse_known_args(argv)def foo(astr):    if astr.startswith('--conf-'):        astr = astr[7:]    astr = astr.replace('-','_')    return astrd = {foo(k):v for k,v in zip(extras[::2],extras[1::2])}# {'key_1': 'value1', 'key_2': 'value2'}

extras
分析可以更稳健-确保有适当的对,拒绝格式错误的按键,操作
=

另一种方法是扫描

sys.argv
--conf-
字符串,并使用它们来构建
add_argument
语句。

keys = [k for k in argv if k.startswith('--conf-')]p = argparse.ArgumentParser()for k in keys:    p.add_argument(k, dest=foo(k))print vars(p.parse_args(argv))

如果您接受“ –conf key1 value1 –conf key2 value2 …”作为输入,则可以定义

parser.add_argument('--conf', nargs=2, action='append')

会产生:

namespace('conf': [['key1','value1'],['key2','value2']])

可以很容易地变成字典。或者,风俗习惯

Action
可以
setattr(namespace, values[0],values[1])
将键/值对直接输入到命名空间中。

我相信关于接受’“ key1:value”“ key2:value2”’输入存在SO问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号