ghm*_*014 4 python properties multiline
我正在尝试读取java多行i18n属性文件.有这样的行:
messages.welcome=Hello\
World!
messages.bye=bye
Run Code Online (Sandbox Code Playgroud)
使用此代码:
import configobj
properties = configobj.ConfigObj(propertyFileName)
Run Code Online (Sandbox Code Playgroud)
但是对于多行值,它会失败.
有什么建议?
根据ConfigObj文档,configobj要求您用三引号括起多行值:
包含换行符(多行值)的值可以用三引号括起来.如果值包含两种类型的引号,也可以使用这些.列表成员不能被三重引号包围:
如果修改属性文件是不可能的,我建议使用configparser:
在配置解析器中,值可以跨越多行,只要它们比包含它们的键缩进更多.默认情况下,解析器还允许空行成为值的一部分.
这是一个概念的快速证明:
#!/usr/bin/env python
# coding: utf-8
from __future__ import print_function
try:
import ConfigParser as configparser
except ImportError:
import configparser
try:
import StringIO
except ImportError:
import io.StringIO as StringIO
test_ini = """
[some_section]
messages.welcome=Hello\
World
messages.bye=bye
"""
config = configparser.ConfigParser()
config.readfp(StringIO.StringIO(test_ini))
print(config.items('some_section'))
Run Code Online (Sandbox Code Playgroud)
输出:
[('messages.welcome','Hello World'),('messages.bye','bye')]
| 归档时间: |
|
| 查看次数: |
5477 次 |
| 最近记录: |