私はPython 2.7を使用していて、通常のスクレイピングタスクを実行しています。私は擦り傷の間にデータを保存するためにCSVを使用したいと思います。Python - 既存のCSVファイルにデータを追加しますか?
は現在、私は、1つの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')
良い方法はありますか?具体的には、ファイルを作成したり削除したりせずに、既存のファイルに直接新しいデータを追加することはできますか?また、ネットワークが途中で途切れるとファイルの半分を失うことはありません。
私は追加モードについて知っていますが、新しい行を追加するだけでなく、既存の行を編集しています。
ありがとうございます!
良い方法はありません。 –
これは人々が1980年代に物事をするのに使った方法です。今はRDBMを使用しています。 – e4c5