如何使用CSV将文本文件放入数组,然后在该数组中搜索特定值

2024-09-28 22:21:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用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.

基本上,我要做的是创建一个长数组(return),其中包含文本文件中的所有数据。然后长数组应该被分解成小的、几乎是小的数组(行)。然后程序应该打印与请求搜索的字符串(searcher)相关的浮点值


Tags: 模块csvas数组bethisnumreader
1条回答
网友
1楼 · 发布于 2024-09-28 22:21:59

该代码中有几个语法错误。你不能通过发明自己的语法来编写代码,比如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        

相关问题 更多 >