在Python中快速读取属性文件的方法是什么?
我有一个文件,里面的格式是这样的:
VarName=Value
.
.
我想把它读进一个哈希表,这样当我用H("VarName")
的时候,就能得到对应的值。
有没有什么快速的方法?(比如读取一组字符串,把它们在等号的地方分开,然后放进哈希表里?)
我是在用Python编程。
10 个回答
8
d = {}
with open('filename') as f:
for line in f:
key, value = line.split('=')
d[key] = value
编辑:
for line in f:
tokens = line.split('=')
d[tokens[0]] = '='.join(tokens[1:])
正如foret所建议的,你可以把它改成这样:
这样可以处理值中允许有等号的情况,但如果名字中也可以有等号的话,这样还是不行——要解决这个问题,你需要一个真正的解析器。
10
也许 ConfigParser 可以帮到你。
22
一句话的答案:
H = dict(line.strip().split('=') for line in open('filename.txt'))
(如果值中可能也包含“=”这个字符,可以选择使用 .split()
并设置 maxsplit=1
)