2014-10-28 50 views
0

我正在使用csv DictReader讀取csv文件並對其執行字典操作。奇怪的是,在每次操作之前,我需要重新讀取csv文件。爲什麼會這樣?在每次「字典」操作之前需要重新讀取Python CSV

import csv 
readin = open("minimal.csv", "r") 
dict = csv.DictReader(readin, delimiter=",", quotechar="\"") 
for rows in dict: 
    print rows 

輸出:

{'Title1': 'One', 'Title2': 'Two', 'Title3': 'Three'} 
{'Title1': 'Four', 'Title2': 'Five', 'Title3': 'Six'} 

如果我執行打印操作的第二次:

for rows in dict: 
    print rows 

它沒有返回值,甚至不是一個錯誤。爲了再次獲得打印輸出,我需要再次執行第一步和第二步(「打開」和「csv.DictReader」)。爲什麼是這樣?

回答

0

第二次不工作的原因是文件指針已經在文件末尾,所以沒有什麼可讀的;您的閱讀器對象已經到達文件的末尾。

順便說一下,不要使用dict作爲變量名稱,它會隱藏內置的dict()函數。

可以將所有的行存儲在一個列表中,這樣你就不必再讀取該文件:

with open('minimal.csv', 'r') as readin: 
    reader = csv.DictReader(readin, delimiter=',', quotechar="\"") 
    rows = list(reader) 

for row in rows: 
    print(row) 
+0

非常感謝我的朋友,這是一個很大的幫助! – Ratnanil 2014-10-28 05:44:45

相關問題