为什么我的编写器代码在for循环中只将1行写入csv文件。我的代码是:
for row in announcements_df:
row['Date'] = datetime.datetime.strptime(row['Date'] + row['Time'], '%Y%m%d%H:%M:%S')
data_writer = csv.DictWriter(open('announcements_date_formated.csv', 'wb'), fieldnames=['asxCode', 'CompanyName', 'Date', 'Time', 'Header', 'page', 'MarketSensitive', 'hour', 'minutes', 'year', 'month', 'day', 'Date2'])
data_writer.writeheader()
data_writer.writerow(row)
非常感谢
答案 0 :(得分:2)
因为对于每一行,您重新打开文件进行写入,因此您将覆盖以前的内容。将open()
的行移到循环外部。还有标题部分。
答案 1 :(得分:1)
您的代码应如下所示:
with open('announcements_date_formated.csv', 'wb') as csvfile:
data_writer = csv.DictWriter(csvfile, fieldnames=['asxCode', 'CompanyName', 'Date', 'Time', 'Header', 'page', 'MarketSensitive', 'hour', 'minutes', 'year', 'month', 'day', 'Date2'])
data_writer.writeheader()
for row in announcements_df:
row['Date'] = datetime.datetime.strptime(row['Date'] + row['Time'], '%Y%m%d%H:%M:%S')
data_writer.writerow(row)
正如JulienD已提到的那样,每次循环时,您都会重新打开文件