2017-06-16 10 views
0

私はちょうどPythonを学び始めました。私はタプルのリストにcsvファイルのデータを格納する必要があります:各行の値を表すタプル、すべての行を格納するリスト 私が問題を抱えている機能は、リストをフィルタリングする必要があるときです。基本的には、条件を満たすものだけを含むリストのコピーを作成します。私は正常にすべてのタプルをリストに追加しましたが、タプルを新しいリストに追加する必要がある場合、それは機能しません。Python 3、リストにタプルを追加する方法

def filterRecord(): 
    global filtered 
    filtered = list() 
    try: 
     if int(elem[2])>= int(command[-1]): #the condition 
        #if I print(elem) here, all results are correct 
     filtered.append(tuple(elem)) #tuples do not add into the list 
            #len(filtered) is 0 
    except ValueError: 
     pass 


def main(): 
    infile = open('file.csv') 
    L = list() 
    for line in infile: 
     parseLine() #a function store each row into tuple 
    for line in stdin: 
     command = line.split() #process user input, multiple lines 
     for elem in L: 
      if command == 0: 
       filterRecord() 

私が実行すると、プログラムは応答しません。私が強制停止した場合、トレースバックは常にfor line in stdin です。また、私はこのプログラムでcsvモジュールを使用することはできません。

+0

フィルタ基準は何ですか:あなたは、次にような何かを行うことができ

? –

+0

@WillemVanOnsem elem [2]が入力した数値以上の場合 –

答えて

0

私はあなたが(これは宿題のようなものでない限り)、CSVファイルを解析するPythonの組み込みのライブラリを使用する必要がありますimport sysに必要とfor line in sys.stdin

+0

私はインポートsysを行った –

+0

'stdin'ではなく' sys.stdin'をやりましたか?それ以外の場合は、完全なエラーメッセージを投稿できますか? –

+0

私は 'from sys import stdin'を実行しました。私はエラーメッセージが表示されません。プログラムを強制終了するまで実行し続けます。 –

-1

を使用すると思う:https://docs.python.org/2/library/csv.html

import csv 
with open ('file.csv', 'r') as f: 
    reader = csv.DictReader(f, delimiter=",") 
+0

"また、私はこのプログラムでcsvモジュールを使用することはできません。 –

関連する問題