2014-09-12 50 views
0

我有一個簡短的問題。我試圖通過讀取另一個CSV文件中寫入一個新的CSV文件,這裏是我的代碼:python在一個單元格中寫入csv

f_r = open("Bus.csv") 
f_w = open("PJM_LMP.csv","w") 
f = csv.reader(f_r) 
for read_line in f: 
    if read_line[3] == "PJM_H" or read_line[3] == "PJM_G": 
     f_w.writelines(read_line) 

f_r.close() 
f_w.close() 

事實證明,所有的行寫在單元格,我想有他們在不同的行和單元格,我如何更改我的代碼?

回答

2

使用的OUTPUTFILE而不是試圖直接寫列表中文件csv.writer()

with open("Bus.csv", 'rb') as f_r, open("PJM_LMP.csv", "wb") as f_w: 
    reader = csv.reader(f_r) 
    writer = csv.writer(f_w) 
    writer.writerows(r for r in reader if r[3] in {"PJM_H", "PJM_G"}) 

上面的代碼也使用文件作爲背景下管理人員,不再需要調用它們的close()明確。

我已經使用了一個生成器表達式來過濾寫入輸出文件的行。

相關問題