DictWriter大文件'空'

时间:2016-06-14 09:54:04

标签: python python-2.7 csv pymongo

我已经查看了其他问题,但他们似乎都指出没有关闭文件,这应该不是我的函数的情况。我有一个pymongo游标,可以检索多行。当它很小(大约10,000)时没有问题,它需要适当的字段并将它们写出来。当我进行完整查询(几百万行)时,它正确完成(没有错误),文件大约是2.1 GB但是我无法在我的CSV编辑器,Excel或Notepad ++中打开它,要么它们什么都不做,要么说文件是空。这是我的代码:

def write_csv(curs, filename):
    with open(filename, 'wb') as csv_file:
        writer = DictWriter(csv_file, fieldnames=columns, delimiter=';')
        writer.writeheader()
        for row in curs:
            writer.writerow(row)

我将pymongo游标传递给这个文件:

results = wtebt_collection.find(query,projection=proj)
write_csv(results, 'my_file.csv')

有人可以解释一下为什么这不起作用吗?此外,如果有更好的方法来做到这一点,请告诉我。这是两个查询中较小的一个。

0 个答案:

没有答案