python - 从文件中读取值并将它们存储在字典中
问题描述
我想编写一个函数 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]}
我怎样才能达到上述结果?
解决方案
不要为每一行创建一个新字典,向同一个字典添加一个元素。
改变
d = {a:b}
到
d[a] = b
并print(d)
在循环完成后放置,而不是在循环内。
推荐阅读
- google-workspace - 已删除的用户在环聊中被视为机器人
- node.js - 无法在 razorpay [firebase_functions/internal] 内部的 firebase 云函数中创建订单 ID
- laravel - 如何修改 Laravel Spark 侧边栏视图?
- forms - 谷歌分析白皮书下载
- c# - 反序列化滑块值
- c# - .Net Core MVC如何找到用户选择的路径
- angular - 如何为数组中的每个图像添加复选框并仅选择一个
- apache-spark - 在 Hadoop 表中的同一分区上查询的多个 Spark 会话是否会使查询变慢?
- flutter - 在我的物理设备中运行颤振程序时出现以下错误。我应该怎么做才能纠正它?
- javascript - 如何在 Chrome 扩展程序中添加一个播放音频 onclick 的按钮?