读写Java .properties文件
项目描述
GitHub | PyPI | 文档 | 问题 | 变更日志
javaproperties 提供了对读取和写入 Java .properties 文件(包括简单的行格式和 XML 格式)的支持,它提供了一个基于 json 模块的简单 API —— 虽然对于 Java 程序员来说,它还包括一个旨在尽可能匹配 Python 语言的 Java 8 的 java.util.Properties 类。
之前的 javaproperties 版本包括用于基本操作 .properties 文件的命令行程序。从版本 0.4.0 开始,这些程序已被分割到一个单独的包中,即 javaproperties-cli。
安装
javaproperties 需要 Python 3.6 或更高版本。只需使用 Python 3 的 pip 来安装它(你有 pip 吗?)
python3 -m pip install javaproperties
示例
输出一些键和值(输出顺序不保证)
>>> properties = {"key": "value", "host:port": "127.0.0.1:80", "snowman": "☃", "goat": "🐐"} >>> print(javaproperties.dumps(properties)) #Mon Sep 26 14:57:44 EDT 2016 key=value goat=\ud83d\udc10 host\:port=127.0.0.1\:80 snowman=\u2603
加载一些键和值
>>> javaproperties.loads(''' ... #Mon Sep 26 14:57:44 EDT 2016 ... key = value ... goat: \\ud83d\\udc10 ... host\\:port=127.0.0.1:80 ... #foo = bar ... snowman ☃ ... ''') {'goat': '🐐', 'host:port': '127.0.0.1:80', 'key': 'value', 'snowman': '☃'}
将一些属性输出到文件,然后再次读取
>>> with open('example.properties', 'w', encoding='latin-1') as fp: ... javaproperties.dump(properties, fp) ... >>> with open('example.properties', 'r', encoding='latin-1') as fp: ... javaproperties.load(fp) ... {'goat': '🐐', 'host:port': '127.0.0.1:80', 'key': 'value', 'snowman': '☃'}
对输出的属性进行排序
>>> print(javaproperties.dumps(properties, sort_keys=True)) #Mon Sep 26 14:57:44 EDT 2016 goat=\ud83d\udc10 host\:port=127.0.0.1\:80 key=value snowman=\u2603
关闭时间戳
>>> print(javaproperties.dumps(properties, timestamp=None)) key=value goat=\ud83d\udc10 host\:port=127.0.0.1\:80 snowman=\u2603
使用自己的时间戳(自动转换为本地时间)
>>> print(javaproperties.dumps(properties, timestamp=1234567890)) #Fri Feb 13 18:31:30 EST 2009 key=value goat=\ud83d\udc10 host\:port=127.0.0.1\:80 snowman=\u2603
以 XML 格式输出
>>> print(javaproperties.dumps_xml(properties)) <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <entry key="key">value</entry> <entry key="goat">🐐</entry> <entry key="host:port">127.0.0.1:80</entry> <entry key="snowman">☃</entry> </properties>
新特性:v0.6.0 中,将 Unicode 字符直接输出而不是转义它们
>>> print(javaproperties.dumps(properties, ensure_ascii=False)) #Tue Feb 25 19:13:27 EST 2020 key=value goat=🐐 host\:port=127.0.0.1\:80 snowman=☃
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。
源代码分发
javaproperties-0.8.1.tar.gz (43.9 kB 查看哈希值)
构建分发
javaproperties-0.8.1-py3-none-any.whl (24.0 kB 查看哈希值)
关闭
javaproperties-0.8.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9dcba389effe67d3f906bbdcc64b8ef2ee8eac00072406784ea636bb6ba56061 |
|
MD5 | 48895f6a9569ba2ed95ac4d793a1bc28 |
|
BLAKE2b-256 | 6852d7db7b671e2d4596c759fb526864837677c1562462e45f0ba46aef9a28c5 |
关闭
javaproperties-0.8.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0e9b43334d6c1a9bffe34e2ece52588e21a7e099869bdaa481a5c6498774e18e |
|
MD5 | 9e8613e2e73771df351a92735c64f3b5 |
|
BLAKE2b-256 | 47e8c244dd03cecdebaf8116c93afaa1c72c8d4833f078a5d35e00c3d2c3be64 |