从文件到字典对象无循环

Kri*_*Rao 1 python

我想读取一个文本文件,然后将内容转换为字典。文件内容如下:

a=15
b=22
c=31
d=42
Run Code Online (Sandbox Code Playgroud)

有没有任何一种python方法可以做到两行一条,而无需使用任何循环?请帮忙。

我尝试了以下方法:

x=open("file.txt").read()
z=dict(x.replace('\n',','))
Run Code Online (Sandbox Code Playgroud)

但这给我一个错误。

预期结果:

{'a': 15, 'b': 22, 'c': 31, 'd': 42}
Run Code Online (Sandbox Code Playgroud)

Rom*_*est 5

一线csv.reader对象:

from csv import reader

d = {k: int(v) for k, v in reader(open(file), delimiter='=')}
print(d)
Run Code Online (Sandbox Code Playgroud)

输出:

{'a': 15, 'b': 22, 'c': 31, 'd': 42}
Run Code Online (Sandbox Code Playgroud)

如果不必强制将值强制int类型化(如您的问题所示),则只需使用以下命令:

d = dict(reader(open(file), delimiter='='))
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用pandas.read_csv例程(可以方便地强制转换为int类型):

import pandas as pd

d = dict(pd.read_csv(file, delimiter='=', header=None).to_records(index=False))
print(d)
Run Code Online (Sandbox Code Playgroud)

输出:

{'a': 15, 'b': 22, 'c': 31, 'd': 42}
Run Code Online (Sandbox Code Playgroud)