0
我正在使用Python 2.7并运行常规的抓取任务。我想使用CSV在刮擦之间存储数据。Python - 将数据添加到现有的CSV文件?
目前我正在从一个CSV文件中读取数据,写出来一行接一行到另一个,然后删除和重命名文件:
reader = pd.read_csv('temp1.csv')
reader.set_index('id', inplace=True)
writer = csv.DictWriter(open('temp2.csv', 'wb'), fieldnames=['id', 'links'])
writer.writeheader()
for i, row in reader.iterrows():
# Check if data is already in CSV, if not scrape it.
try:
links = df_links.ix[row['id']]['links']
except KeyError:
links = do_scrape(row['id'])
if links:
df.set_value(i, 'pubmed_links', links)
# Write data out to new CSV file.
writer.writerow({'id': row['id'], 'links': links})
os.remove('temp1.csv')
os.rename('temp2.csv', 'temp1.csv')
有没有更好的办法?具体而言,我可以直接将任何新数据添加到现有文件中,而无需创建和删除文件,并且安全可靠,因此如果网络中途中断,我不会丢失一半文件?
我知道追加模式,但我正在编辑现有的行,而不只是添加新的行。
谢谢!
没有更好的方法。 –
这是人们在20世纪80年代习惯做事的方式。现在我们使用RDBM。 – e4c5