我有这种格式的选项文件:
key value\t\n
N:B :. 有些值显示后面的标签。
我使用Code代码:
src = open("conf.cfg").readlines()
item = item.split(" ")[0:2]
key = item[0]
value = item[1]
dict_[key] = value
我可以使用生成器表达式来获得相同的结果吗?
答案 0 :(得分:1)
您可以使用词典理解,例如:
with open("conf.cfg") as f:
dict_ = {key: value
for key, value in (line.strip().split(" ")[:2]
for line in f)}
答案 1 :(得分:1)
是的,您可以使用生成器表达式,它看起来像这样:
with open("conf.cfg") as f:
dict_ = dict(line.split() for line in f)
我假设你没有钥匙或价值空间。如果您有空格("它们被引用"字符串),那么您将更容易使用csv
模块读取文件。
答案 2 :(得分:1)
也许这样:
with open('config.txt') as f:
dict_ = {k: v for k, v in (line.split() for line in f.readlines())}
答案 3 :(得分:0)
使用生成器功能:
def myGenerator():
with open("conf.cfg") as f:
for line in f.readlines():
yield(line.split())
result = {k:v for k,v in myGenerator()}
print result