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