我有这段代码
def reader(file='file.csv', fields=['user','email', 'fname', 'lname', 'pass']):
with open (file) as f:
f_reader= csv.DictReader(f, fields)
yield f_reader
但是,要在我的代码中实际使用此功能,我必须这样做:
eggs= reader()
for spam in eggs:
for row in spam:
print(row['email'])
也就是说,在生成器内部创建了生成器。我想要的是仅使用一个for
循环即可访问我的csv数据。我怎么做?
另外,如果我将yield
替换为return
,则会得到IOError: operation on closed file
答案 0 :(得分:0)
答案很简单:
def reader(file='file.csv', fields=['user','email', 'fname', 'lname', 'pass']):
with open (file) as f:
f_reader= csv.DictReader(f, fields)
yield from f_reader # <---Change here