如果我撥打company_at_node
方法(如下所示)兩次,它將只打印第一個呼叫的一行。我想也許我需要seek
回到閱讀器的下一個呼叫的開始,所以我加 self.companies.seek(0)
到company_at_node
方法的末尾,但DictReader沒有屬性查找。由於該文件從來沒有關閉(因爲我沒有得到這樣的錯誤信息),我不認爲這是一個ValueError i/o operation on closed file
(它有許多關於SO的問題)如何返回到DictReader的開頭?
有沒有辦法返回一個DictReader的第一遍(即第二個函數調用)的開始?
class CSVReader:
def __init__(self):
f = open('myfile.csv')
self.companies = csv.DictReader(f)
def company_at_node(self, node):
for row in self.companies:
if row['nodeid'] == node:
print row
self.companies.seek(0)
你必須'f.seek()',並重新初始化'DictReader'但最好是整個字典加載到內存中,如果它不是很大。 – Selcuk