我想读取一个文本文件,然后将内容转换为字典。文件内容如下:
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)
一线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)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |