Scorrere le cartelle in una directoryCiao a tutti,
Ho uno script che funziona su una serie di dati che ottengo da una macchina a caricamento ciclico. Tuttavia, ricevo batch di dati da questa macchina che è organizzata in cartelle contenenti il file .txt su cui voglio eseguire lo script. C'è un modo per incollare il file di script nella cartella principale contenente tutte le sottocartelle che contengono i file .txt e farlo scorrere in ogni cartella (aprendo i file .txt nelle cartelle ed eseguendo lo script su ogni .txt file come va)?
Ho lo script impostato in questo momento in cui può restituire il percorso del file corrente in cui si trova lo script utilizzando , e in questo momento, devo definire esplicitamente (digitare nello script) il nome del file per aprire il file di dati.
Utilizzo di JMP 17.
Grazie in anticipo!
ScriptingRe: Scorrere le cartelle in una directoryLa funzione Multiple File Import() è una fantastica scorciatoia per questo, in quanto restituisce un elenco di file. Suggerirei di eseguire prima l'importazione tramite la GUI, quindi copiare semplicemente lo script e modificarlo se necessario. Pseudo-sceneggiatura qui sotto:
m = Multiple File Import (lots of settings);
lstFiles = m << import data;
for each ({filename}, lstFiles,
//your script for each file
);
Re: Scorrere le cartelle in una directoryE se MFI non fa ciò di cui hai bisogno, FilesInDirectory(...) restituisce un elenco di file e directory. isFile() e isDirectory() e FileCreationDate() e FileModificationDate() possono aiutarti a ottenere ciò di cui hai bisogno. (nomi approssimativi, controllare l'indice di scripting.) I pensare FilesInDirectory lo fa non restituire le directory quando il file ricorsivo viene utilizzata l'opzione. Potrebbero esserci elementi nell'elenco che non sono file o directory, quindi usa il test che ha più senso. Ma se MFI lo farà, avrai uno script JSL più semplice.
Re: Scorrere le cartelle in una directoryGrazie per la risposta - proverò presto!
Re: Scorrere le cartelle in una directoryGrazie per i consigli!
Re: Scorrere le cartelle in una directoryJed,
Sembra che i dati di importazione di più file funzionino, tuttavia, non riesco a far funzionare la funzione "for each". Sembra che non stia scorrendo l'elenco dei file creati con l'importazione di file multipli: ottengo lo stesso valore di ritorno dal mio script 33 volte (33 è il numero di elementi nell'elenco dei file).
Re: Scorrere le cartelle in una directoryespandere @Jed_Campbell esempio un po',
for each ({filename}, lstFiles,
//your script for each file
dt = filename; // it isn't really a name, it is a data table handle
... do something with this open data table that dt points to
close( dt, "nosave" ); // if you are done with it
);
Copiare il nome del file in dt è solo per chiarire qual è l'elemento della lista. Potresti dt<