在Python中快速读取属性文件的方法是什么?

12 投票
10 回答
28211 浏览
提问于 2025-04-16 05:55

我有一个文件,里面的格式是这样的:

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

撰写回答