2017-09-30 4 views
0

CSVモジュールを使用してテキスト文書から10進値を抽出しようとしていますが、ここで私が使用していたテキストファイルは、次のとおりです。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. 

は、テキストファイルからのすべてのデータが含まれている長い配列(リターン)を作成することです:私は、配列を分割する私の考えが働くとは思いません。その後、長い配列は小さな、ほとんどのミニ配列(行)に分解される必要があります。次に、検索するよう求められた文字列(searcher)に関連するfloat値を出力する必要があります。

+0

CVS CSVとは全く異なるものです。 –

答えて

0

このコードにはいくつかの構文エラーがあります。 rows(1-4)=reader/4のように独自の構文を作成してコードを書くことはできません。言語が提供する機能を使用する必要があります。しかし、とにかく...

csvモジュールは、行ごとにCSVファイルをループできるように設計されています。データファイルでは、各行リストには複合名と関連する浮動小数点の2つの項目があります。ここでは、あなたが望む検索を実行する簡単なデモがあります。アイテムを見つけたら、それを印刷してループから抜け出します。アイテムが見つからない場合、アイテムが見つかりません。

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   
関連する問題