首页 > 解决方案 > 从文件中读取值并将它们存储在字典中

问题描述

我想编写一个函数 read_file() 来读取文件中的值并将数据存储在字典中。字典看起来像这样:

product = {'d01':['pencil', 5], 'd02':['highlighter', 7], 'd03':['sharpener', 10]....}

文件中的项目如下所示:

输入:

d={}
file=r"C:\Users\Public\Documents\Folder\products.dat"
with open(file,'r') as f:
    for items in f:
       print(items)

结果:

d01,pencil,5
d02,highlighter,7
d03,sharpener, 10
d04,pen,3

这是我的代码:

def read_file():
 d={}
 file=r"C:\Users\Public\Documents\Folder\products.dat"
 with open(file,'r') as f:
    for items in f:
       stuff = items.split(",")
       quantity = int(stuff[2].rstrip())
       a = stuff[0]
       b = [stuff[1], quantity]
       d = {a:b}
       print(d)
read_file()

目前我得到的结果:

{'d01': ['pencil', 5]}
{'d02': ['highlighter', 7]}
{'d03': ['sharpener', 10]}
{'d04': ['pen', 3]}

我怎样才能达到上述结果?

标签: pythonlistdictionary

解决方案


不要为每一行创建一个新字典,向同一个字典添加一个元素。

改变

d = {a:b}

d[a] = b

print(d)在循环完成后放置,而不是在循环内。


推荐阅读