2017-02-15 4 views
1

私はPyCharmにcsvファイルをインポートして、行から特定のリストを印刷しようとしています。私は整数のリストとして出力を持っています。私はリストをフィルタリングし、特定の数(この場合は500)より大きい整数だけを出力しようとしていますが、 "if"条件をどのように、どこで使用するかはわかりません。整数のリストを持つフィルターpython出力

は、ここに私のコードです:

import csv 

f = open('C:\Python36-32\movies.csv', encoding='utf') 

csv_f = csv.reader(f) 
next(csv_f, None) 

for row in csv_f: 
    content = row[3] 

print(content) 

f.close() 

そして、ここでは出力です:

489 
472 
615 
784 
251 
365 
956 
902 
397 
668 
... 

出力が続きます。

ありがとうございました!

+0

''プリント – 9000

+2

このコードが動作してはならない、印刷がずれであり、それは最後の行を印刷しなければなりません。 – Marco

+0

あなたのインデントがオフになっているようです。とにかく、printステートメントの前にifステートメントを追加するだけです。 – marisbest2

答えて

1

import csv 

with open(filename, 'r') as f: 
    reader = csv.reader(f, delimiter=',') 
    next(reader, None)  # skip the headers 

    for row in reader: 
     if int(row[3]) > 500: 
      print(row) 
+1

ありがとう@sparkandshine。出来た!ヘッダーを無視するようにコードを変更するだけです。乾杯! – Murali

1
import csv 

f = open('C:\Python36-32\movies.csv', encoding='utf') 

csv_f = csv.reader(f) 
next(csv_f, None) 

for row in csv_f: 
    content = row[3] 
    if content>500: 
     print(content) 

f.close() 
0

あなたのforループ内であなたのif文を入れて、またループにあなたのprint文を移動する必要があり、これを試してみてください。

改正ループ:さておき、私はまた、ファイル操作のためのコンテキストマネージャ「で」使用することをお勧めします、というよりも、手動でそれらを閉じるよう

for row in csv_f: 
    content = row[3] 
    if content > 500: 
     print(content) 

。 [コンテンツにおけるxのX X> 500あれば】すなわち

with open('C:\Python36-32\movies.csv', encoding='utf', 'r') as f: 
    csv_f = csv.reader(f) 
    next(csv_f, None) 
関連する問題