2010-05-11 33 views
4

我試圖導出數據到csv文件。它應該包含一個標題(來自datastack)和用我的數據(來自datastack)重新存儲數組。 datastack中的一行與數據集的長度相同。下面的代碼工作,但它從數據堆中刪除第一行的部分。任何想法,爲什麼這可能是?寫入csv頭從下面寫的numpy數組中刪除數據

s = ','.join(itertools.chain(dataset)) + '\n' 
newfile = 'export.csv' 
f = open(newfile,'w') 
f.write(s) 
numpy.savetxt(newfile, (numpy.transpose(datastack)), delimiter=', ') 
f.close() 

回答

6

您與文件名「export.csv」文件兩次,一次是當你調用open()而一旦當你調用numpy.savetxt()。因此,有兩個打開的文件句柄爭用相同的文件名。如果您傳遞文件句柄而不是文件名numpy.savetxt()你避免這種競爭情況:

s = ','.join(itertools.chain(dataset)) + '\n' 
newfile = 'export.csv' 
f = open(newfile,'w') 
f.write(s) 
numpy.savetxt(f, (numpy.transpose(datastack)), delimiter=', ') 
f.close() 
+0

謝謝,這作品!我沒有看到有可能使用文件句柄。 – user338095 2010-05-11 09:42:55