【发布时间】:2018-08-03 23:27:28
【问题描述】:
我目前正在使用 Python 3 进行数据抓取项目,并尝试将抓取的数据写入 CSV 文件。我目前的做法是这样的:
import csv
outputFile = csv.writer(open('myFilepath', 'w'))
outputFile.writerow(['header1', 'header2'...])
for each in data:
scrapedData = scrap(each)
outputFile.writerow([scrapedData.get('header1', 'header 1 NA'), ...])
然而,一旦这个脚本完成,CSV 文件就是空白的。如果我只是运行:
import csv
outputFile = csv.writer(open('myFilepath', 'w'))
outputFile.writerow(['header1', 'header2'...])
生成一个包含标题的 CSV 文件:
header1,header2,..
如果我只是在data中刮1,例如:
outputFile.writerow(['header1', 'header2'...])
scrapedData = scrap(data[0])
outputFile.writerow([scrapedData.get('header1', 'header 1 NA'), ...])
将创建一个 CSV 文件,其中包括 data[0] 的标题和数据:
header1,header2,..
header1 data for data[0], header1 data for data[0]
为什么会这样?
【问题讨论】:
-
尝试使用上下文管理器。您永远不会关闭文件,因此它可能不会刷新。无论如何,在处理文件时应始终使用上下文管理器。
-
您必须在完成写入后关闭文件。
标签: python csv export-to-csv