2017-06-21 88 views
-1

我想使用python解析CSV文件,並僅輸出具有特定值的特定行。這是我到現在爲止的代碼,CSV解析Python,輸出具有特定值的某些行

import csv 

f = open('alerts2.csv') 
csv_f = csv.reader(f) 
li1 = [] 
header = next(csv_f) 
for row in csv_f: 

    # li1.append(row[5]) 
    # li1.append(row[0]) 
    severity = int(row[0]) #Has The the integer value from 10 - 40 
    Status = str(row[1]) 
    PolicyName = str(row[2]) 
    PolicyBlockName = str(row[3]) 
    PolicyRuleName = str(row[4]) 
    Summary = str(row[5]) 
    li1.append(severity) 
    li1.append(Summary) # string variables 
print li1 
f.close() 

這從輸出嚴重性和彙總所有的值,但我希望它輸出的嚴重性和彙總的數據只有當嚴重性值是「10」。 我想使用列表「li1」並搜索列表,如果找到值「10」,則輸出值。有什麼建議麼??我是一個Python新手。

回答

1

只是此檢查添加到您的環比CSV行:

for row in csv_f: 
    severity = int(row[0]) 
    if severity != 10: 
     continue 

如果severity值不是10的循環將continue與下一行並沒有做任何事情,當前行後面。

+0

謝謝,但你能解釋一下你的解決方案多一點。謝謝。 – KoushKilla

+0

python文檔有一個關於[for循環中的continue語句]部分(https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-循環)。希望有所幫助! –

2
import pandas as pd 

alerts_df = pd.DataFrame.from_csv('alerts2.csv', index_col=None) 
print alerts_df[alerts_df['severity'] == 10]['Summary']