【发布时间】:2021-04-15 21:33:00
【问题描述】:
我有一个 sample.txt 文件:
1 7 14
3 3 10
1 1 3
我写的(虽然错了,但至少有一些)(有更好的,但我无法重拍):
content = []
with open ("sample.txt","r",encoding="utf-8") as file:
for line in file:
line = file.readline().strip().split(" ")
mydict = {"A":int(file.readline().strip().split(" ")[0]),
"B":int(file.readline().strip().split(" ")[1]),
"C":int(file.readline().strip().split(" ")[2])}
content.append(mydict)
print (content)
预期输出:
[ {"A":1,"B":7,"C":14},{"A":3,"B":3,"C":10},{"A":1,"B":1,"C":3} ]
他们都没有悲伤地工作。 通常有 3 个问题:
- 当我尝试使用 int() 转换值时
- 缺少第一行或最后一行(索引问题)
- 在值上我不能只写 line[0],因为那样它不起作用(为什么?)
我真的是新手,也许对其他和我一样的人和像我一样的菜鸟有好处。
【问题讨论】:
-
这能回答你的问题吗? convert csv file to list of dictionaries
-
我希望这是一个家庭作业,教你如何处理文件和字典。否则,我建议根本不要创建这样的字典列表。
-
您缺少的是
for line in file:已经 一次读取文件一行。每次调用readline()都会读取 another 行,因此您的输入会比您预期的更快用完。调用readline()是一种较低级别(且较旧)的方法,是for line in file:的替代。
标签: python dictionary