我正在尝试使用CSV模块从文本文档中提取十进制值,但我发现它很难。这是我正在使用的文本文件:
Lipids,1.2
Triglycerides,1.7
Fats,6.6
Sugar,7.1
这是我制作的代码,但我仍然试图让它工作,我发现很难搜索特定的值。我不认为我对分割数组的想法有效:
searcher=Fats
with open('Truffles.txt','rU') as f:
reader= csv.reader(f)
#(reader) should look like this [Lipids,1.12],[Triglycerides,1.7]
rows(1-4)=reader/4
#So now row1=[Lipids,1.12] as reader as been divided into four parts
if searcher in row1:
num=row1/2 #The second part of row1
else
#Move to row2 and continue search
print (num)
#Eventually num will be found.In this case 6.6 should be printed.
基本上我要做的是创建一个包含文本文件中所有数据的长数组(返回)。然后长阵列应该分解成几乎小的数组(行)。然后程序应该打印与要求搜索的字符串相关的浮点值(搜索者)。
答案 0 :(得分:0)
该代码中存在多个语法错误。您不能通过发明自己的语法来编写代码,例如rows(1-4)=reader/4
。您需要使用该语言提供的功能。但无论如何......
csv
模块旨在让您逐行循环遍历CSV文件,并且对于您的数据文件,每个行列表将包含两个项目:复合名称和关联的浮点值。这是一个简单的演示,可以执行您想要的搜索。当它找到该项目时,它会打印它并突破循环。如果它没有找到它告诉你它无法找到的项目。
import csv
searcher = 'Fats'
with open('Truffles.txt','rU') as f:
reader = csv.reader(f)
for row in reader:
if row[0] == searcher:
print('{}: {}'.format(*row))
break
else:
print(searcher, 'not found')
<强>输出强>
Fats: 6.6