2014-09-12 123 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()明确。

我已经使用了一个生成器表达式来过滤写入输出文件的行。

相关问题