Python配置解析器(重复密钥支持)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python配置解析器(重复密钥支持),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1623字,纯文字阅读大概需要3分钟。
内容图文
![Python配置解析器(重复密钥支持)](/upload/InfoBanner/zyjiaocheng/707/1d6640113caa48fa801e0e064eed8f87.jpg)
所以我最近开始为我正在研究的Python项目编写一个配置解析器.我最初避免使用configparser和configobj,因为我想支持这样的配置文件:
key=value
key2=anothervalue
food=burger
food=hotdog
food=cake icecream
简而言之,这个配置文件将经常通过SSH命令行进行编辑.因此我不想对间距进行制表或挑剔(如YAML),但我也希望避免使用多个值(容易10个或更多)的行在vi中换行.这就是我想支持重复键的原因.
一个我理想的世界,当我向Python配置对象询问食物时,它会给我一个回复列表[‘burger’,’hotdog’,’cake’,’icecream’].如果没有定义食物值,它将查找默认配置文件并给我/那些值.
我已经实现了上述内容
然而,当我意识到我想支持保留内联注释等时,我的麻烦就开始了.我处理读取和写入配置文件的方式是将文件解码为内存中的dict,读取dict中的值,或将值写入dict,然后将该dict转储回文件.这对于保留行顺序和评论等并不是很好,而且它正在惹恼我.
A)ConfigObj看起来像我需要的一切,除了支持重复键.相反,它希望我制作一个列表,由于换行,在vi上通过ssh手动编辑会很麻烦.我可以使configobj更ssh / vi友好吗?
B)我的自制软件解决方案是错误的吗?有没有更好的方法来读/写/存储我的配置值?有没有简单的方法来处理更改配置文件中的键值,只需修改该行并从内存中重写整个配置文件?
解决方法:
如果可以的话,我当然会尝试利用标准库中的内容.
配置解析器类的签名如下所示:
class ConfigParser.SafeConfigParser([defaults [,dict_type [,allow_no_value]]])
注意dict_type参数.提供时,这将用于构造节的列表,节的选项和默认值的字典对象.它默认为collections.OrderedDict.也许你可以在那里传递一些东西来获得你想要的多键行为,然后获得ConfigParser的所有优点.您可能必须编写自己的类才能执行此操作,或者您可能会在PyPi或ActiveState配方中找到一个为您编写的类.尝试寻找包或multiset类.
我要么走这条路,要么只是把它弄清楚并列出一个清单:
foo = value1, value2, value3
内容总结
以上是互联网集市为您收集整理的Python配置解析器(重复密钥支持)全部内容,希望文章能够帮你解决Python配置解析器(重复密钥支持)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。