如果我拨打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