2016-05-31 115 views
4

我需要將行附加到.csv文件。每行包含一個整數向量。要添加的矢量在運行中生成,並且我無法預先知道將添加多少行。
我試圖做到以下幾點,但它似乎並沒有創建一個.csv文件,也沒有在單獨的行中包含每個元素。如何將行添加到.csv文件

s = open("testfile.txt", "a") 

for i in 1:5 

    x = rand(Int8, 10) 
    writecsv(s, x) 

end 

close(s) 

任何幫助表示讚賞!

回答

8

所以,你知道如何創建或使用該超寫一個CSV文件:

x = [1 2 ; 3 4 ; 5 6] 
filePath = "/someAbsolutePath/temp1.csv" 
writecsv(filePath, x) 

當你想追加一個新的行(或一重擊多行),你也可以使用writecsv但首先您需要以附加模式顯式打開文件,然後將生成的文件標識符設置爲writecsv的第一個參數。繼續上面的例子:

fid1 = open(filePath, "a") 
writecsv(fid1, [7 8]) 
close(fid1) 

我不認爲writecsv在完成後將自動close文件時第一個輸入是一個文件標識符,所以最終close聲明是非常重要的。或者,您可以使用@ShaoWeiTeo在評論中提出的版本來獲得自動close

+4

我們也可以使用'open(f :: Function,command,mode :: AbstractString =「r」,stdio = DevNull)'版本,在寫入發生後自動關閉連接。我更喜歡手動關閉,並且是更加Julian的方式來打開文件我認爲... –

+0

感謝科林和邵偉爲您解答。這就是我一直在尋找的東西。非常感激! 我現在還了解到,writecsv()在我的Windows系統上也使用UNIX哲學來創建新行。 – InkPen

相關問題