2017-02-15 31 views
1

我已經導入一個csv文件到PyCharm,並試圖從行中打印一個特定的列表,並迄今成功。我有輸出作爲整數列表。我試圖過濾列表並打印只有大​​於特定數字(本例中爲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

'打印[X用於如果x> 500含量x]' – 9000

+2

此代碼不應該工作,打印錯位,它應該僅打印的最後一行。 – Marco

+0

看起來您的縮進可能已關閉。無論如何,你可以在打印語句前添加一條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

你應該把你的if語句裏面的for循環,同時也移動你的print語句進入循環。

修訂循環:

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

順便說一句我也建議使用「與」上下文管理進行文件操作,而不是手動關閉它們。即

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