2016-05-31 6 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) 

あなたは(1ヒット中または複数行)新しい行を追加したい場合は、あなたも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)'バージョンも使用できます。私はそれ以上の手作業での閉じ方を好んでおり、私が考えるファイルを開くためにジュリアンの方法です... –

+0

あなたの答えはコリンとShaoWeiに感謝します。これは私が探していたものでした。とても有難い! 私は、writecsv()がWindowsシステムでも新しい行のUNIX哲学を使用していることを知りました。 – InkPen

関連する問題