如何在不打開文件的情況下將數據附加到文件?我需要每週將新數據附加到文件中。
有沒有辦法不用在 JMP 腳本中打開/加載文件就可以這樣做?
dt = open("my.csv");
dt<< Concatenate(Data Table ("New data") , append to first table);
dt << Save("my.csv", Replace(1));
謝謝!
數據表腳本Re: 如何在不打開文件的情況下將數據附加到文件?@Dawn_Lun -- 如果 CSV 文件總是 <1E4 行,最好將其作為 JMP 表加載,在 JMP 中連接,然後將 JMP 表另存為 CSV。 (1E4 是一個猜測。 1E6 可能也不錯。)
但是,如果 CSV 文件變得足夠大,需要幾秒鐘才能打開它,您可能想嘗試串聯方法。 串聯方法:將新的(微型)JMP 文件保存在磁盤上的一個新的微型 CSV 文件中(無標題)。 在微型 CSV 上使用 loadTextFile 獲取文本字符串。 然後使用 SaveTextFile 作為@txnelson建議使用第三個參數模式(“追加”)將微小的文本 CSV 字符串連接到磁盤上更大的 CSV 文件。
串聯的潛在問題是將來會破壞大的 CSV 文件。 如果小 CSV 文件更改列順序,則大 CSV 文件會變得亂七八糟,但沒有任何警告。
另一種方法:將所有小型日常 CSV 文件保存在一個目錄中,當您需要將整個集合作為一個文件查看時,使用多文件導入打開它們。 如果標題匹配,MFI 將堆疊文件,並且 MFI 速度很快。 也許使用日期作為小型 CSV 文件名稱的一部分。 將日期設為 YYYYMMDD 格式,以便排序。
如果此數據很重要並且此項目將運行數月,則您還需要進行定期備份。 MFI 方法意味著每個週期只有一個小的 CSV 文件要添加到備份中。
Re: 如何在不打開文件的情況下將數據附加到文件?如果您使用的是 JMP 表,我不知道無法打開文件並追加到文件中。這是我認為您可以使用 JMP 表獲得的最接近結果。
names default to here(1);
new table("New Data",new column("name", character,set values({"BILLY","JIMMIE"})));
dt = open("$DOCUMENTS\Discussion Group\my.csv",private);
dt<< Concatenate(Data Table ("New data") , append to first table);
dt << Save("$DOCUMENTS\Discussion Group\my.csv", Replace(1));
close( dt, nosave );
但是,如果您編寫 JSL 將數據表“New Table”轉換為字符串,即逗號分隔值字符串,您可以使用
Save Text File(path, character string, mode("append");
它將附加到您的 .csv 文件而無需打開它