Come aggiungere dati a un file senza aprirlo?Ho bisogno di aggiungere nuovi dati a un file su base settimanale.
C'è un modo per farlo senza aprire/caricare il file nello script JMP?
dt = open("my.csv");
dt<< Concatenate(Data Table ("New data") , append to first table);
dt << Save("my.csv", Replace(1));
Grazie!
Tabella datiScriptingRi: Come aggiungere dati a un file senza aprirlo?@Dawn_Lun -- Se il file CSV sarà sempre <1E4 righe, probabilmente sarà meglio caricarlo come tabella JMP, concatenare in JMP, quindi salvare la tabella JMP come CSV. (1E4 è un'ipotesi. Anche 1E6 potrebbe andare bene.)
Ma se il file CSV diventa abbastanza grande da richiedere più di qualche secondo per aprirlo, potresti provare l'approccio della concatenazione. L'approccio di concatenazione: salva il nuovo (minuscolo) file JMP in un nuovo, minuscolo CSV su disco (senza intestazioni). Usa loadTextFile sul piccolo CSV per ottenere una stringa di testo. Quindi usa SaveTextFile come @txnelson suggerito di concatenare la minuscola stringa CSV di testo al file CSV più grande su disco con la modalità del terzo parametro ("append").
Il potenziale problema con la concatenazione sta corrompendo il grande file CSV in futuro. Se il minuscolo file CSV cambia l'ordine delle colonne, il grande CSV viene codificato, ma senza alcun avviso.
Un altro approccio: conservare tutti i piccoli file CSV giornalieri in una directory e utilizzare l'importazione di file multipli per aprirli quando è necessario visualizzare l'intero set come un singolo file. MFI impilerà i file se le intestazioni corrispondono e MFI è veloce. Forse usa la data come parte del nome dei piccoli file CSV. Crea la data nel formato YYYYMMDD in modo che si ordini bene.
Se questi dati sono importanti e questo progetto durerà per mesi, è necessario eseguire anche backup regolari. L'approccio MFI significa che c'è solo un piccolo file CSV da aggiungere al backup ad ogni ciclo.
Ri: Come aggiungere dati a un file senza aprirlo?Non sono a conoscenza della possibilità di non aprire un file e aggiungerlo, se si utilizzano tabelle JMP.Qui è il più vicino possibile che puoi ottenere utilizzando le tabelle 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 );
Tuttavia, se scrivi il JSL per convertire la tua tabella di dati "Nuova tabella" in una stringa di caratteri, che è una stringa di caratteri con valori separati da virgole, puoi usarli
Save Text File(path, character string, mode("append");
e verrà aggiunto al tuo file .csv senza doverlo aprire