2016-05-18 53 views
-1

我的編寫代碼在for循環中只寫入一行到csv文件中。我的代碼是:writerow只寫一行

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

請縮進代碼的時間。它在Python中很重要。 –

回答

2

因爲你重新寫的文件,所以你覆蓋以前的內容每行了。在循環外移動open()。還有標題部分。

+0

謝謝,它的工作 – duckman

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已經提到的,你從頭再來打開文件,每次循環

+0

謝謝,我跟着@JulienD,它的工作 – duckman