2013-07-23 62 views
1

您好我正在python 2.7中運行一個csv文件的搜索,但即時通訊在搜索中遇到一個錯誤。即時搜索的文件長度大約爲10000條,格式如下,這裏是文件的一個示例。有些Daysworkedthismonth不包含任何值。如果值存在,尋找一個值並追加

Name,Year Commenced,DaysWorkedthismonth 
John,1990,4 
Jane,1996,3 
Josh,1990, 
Jess,1990,2 

我想要做的是逐行搜索文件並匹配特定值。對於搜索與1990匹配的值並將該行附加到列表的文件。我希望搜索該文件,並且只將該行附加到列表中,如果它還包含另一個列中的值。

即,我想搜索1990年的文件示例,但只有在dayworkedthismonth中存在值時纔將該行追加到文件中。所以,當我搜索1990年已在daysworkedthismonth colummn追加到該行的字符串的值只應

John,1990,4 
Jess,1990,2 

反正有沒有進行這樣的搜索?

到目前爲止,我已經試過,但我有一種感覺,這是錯誤的

for row in a_csv: 
existing= (for row in a_csv if '1990' in row) 
print existing 
+0

有什麼你到目前爲止嘗試過?如果您有一些現有的代碼,請將其編輯爲您的答案。如果沒有,你應該看看Python的'csv'模塊。 – Marius

+0

@Marius我已添加我到目前爲止嘗試過的代碼 – user2603519

回答

0

您可以通過在該行使用split簽入行的字段數:

with open('csvFile', 'r') as a_csv: 
    for row in a_csv: 
     elems = row.split(',') 
     if len(elems) == 3 and elems[1] == '1990': 
      print row 
+0

嗨,這對一個變量很好。但是,如果我試着用列表來實現它,它似乎不起作用。有沒有可能以某種方式使用這個列表? – user2603519

+0

你在說'elems'變量還是'row'?你想打印一行作爲一個列表? – jh314

+0

嗯。當文件讀取它被放置在一個列表中。林試圖說,如果1990年存在和行[2](天工)不是空的,然後打印行。那有意義嗎?? – user2603519

相關問題