python替换java.util.properties。
pyjavaproperties的Python项目详细描述
关于
这是aspn上“python replacement for java.util.properties”配方的一个分支: http://code.activestate.com/recipes/496795/该项目由anand b pillai负责维护 anandpillai@letterboxes.org,anand@anvetsu.com。
许可证
代码是根据麻省理工学院的许可证重新授权的。有关详细信息,请参见LICENSE文件。
这是什么
该模块被设计为与 java.util.Properties <http://java.sun.com/j2se/1.5.0/docs/api/java/util/Properties.html>_ 上课。
目前,支持基本的输入/输出方法。
从根本上说,这个模块的设计是为了让用户能够轻松地解析和操作java属性 文件-就这样。有相当数量的我们蟒蛇在多语种商店工作, 不断地编写自己的解析机制是很痛苦的。更不用说Java人 众所周知,不愿意使用任何跨语言的配置,除非是XML, 这是一种自我惩罚。:)
python支持
该模块是跨python2和python3兼容的。
本模块基本支持python3。这意味着测试应该通过任何版本的 虽然python3只在>;=python3.6.6版本中测试过。
由于python3的更改,这应该适用于任何python2版本>;=python2.7。
注意事项
代码内部仍然使用python2类型的字符串。换句话说,正确的unicode支持仍然是 不见了。
计划
这里是一个在Python 2下运行的当前版本的近似减少优先级的计划 命令。
- 保留/维护原始文件中的空行和注释
- 添加Unicode支持
- 在直接字典get/set之上提供python属性访问
- 使模块与最新j2se中的新方法兼容。
用法
from pyjavaproperties import Properties p = Properties() p.load(open('test.properties')) p.list() print p print p.items() print p['name3'] p['name3'] = 'changed = value' print p['name3'] p['new key'] = 'new value' p.store(open('test2.properties','w'))
另请参见properties.list()方法,该方法将在属性键上返回迭代器
测试
$ python pyjavaproperties_test.py
更改和新闻
0.7版
- 0.7版的setup.py。
- 已创建changelog.txt
- 更新的readme.md显示测试、更改部分和对作者的更新等。
- 从PSF重新获得麻省理工学院的许可。
- 重写N.B的补丁以重新授权麻省理工学院的回购协议。
- 基本的python3支持加上python2/3交叉兼容性。
- 在readme.md.中吸收TOdo。
- 自述=>;readme.md.
- 添加了对引用属性的支持。
- 为引用的属性添加测试并保存。
- 代码上的小改动。
- 代码移到新的git repo。