跳转到主要内容

读写Java .properties文件

项目描述

Project Status: Active - The project has reached a stable, usable state and is being actively developed. CI Status https://codecov.io/gh/jwodder/javaproperties/branch/master/graph/badge.svg https://img.shields.io/pypi/pyversions/javaproperties.svg MIT License

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 查看哈希值

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面