jur*_*ury 12 python configuration-files
我有一个格式的文件
VarName=Value
.
.
Run Code Online (Sandbox Code Playgroud)
我想把它读成一个哈希,这H("VarName")将返回值.
什么是快速的方式?(读取一组字符串,将所有字符串拆分为等号,然后将其放入哈希值?
我正在使用python.
Ste*_*ven 21
oneliner回答:
H = dict(line.strip().split('=') for line in open('filename.txt'))
Run Code Online (Sandbox Code Playgroud)
(如果值也可以包含"="字符.split(),maxsplit=1则可以选择使用)
以@Steven的答案为例,不考虑属性文件中的注释和换行符,这一点可以:
H = dict(line.strip().split('=') for line in open('file.properties') if not line.startswith('#') and not line.startswith('\n'))
Run Code Online (Sandbox Code Playgroud)
d = {}
with open('filename') as f:
for line in f:
key, value = line.split('=')
d[key] = value
Run Code Online (Sandbox Code Playgroud)
编辑:正如foret所建议的,您可以将其更改为
for line in f:
tokens = line.split('=')
d[tokens[0]] = '='.join(tokens[1:])
Run Code Online (Sandbox Code Playgroud)
这将处理在值中允许等号的情况,但如果名称也可能具有等号,那么仍然会失败 - 因为你需要一个真正的解析器.
| 归档时间: |
|
| 查看次数: |
24176 次 |
| 最近记录: |