如何使用csv.DictReader获取我的csv数据?

时间:2020-04-10 05:22:40

标签: python-3.x csv generator

我有这段代码

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

1 个答案:

答案 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