Parcourir les dossiers d'un répertoireSalut tout le monde,
J'ai un script qui fonctionne sur un ensemble de données que je reçois d'une machine à chargement cyclique. Cependant, je reçois des lots de données de cette machine qui sont organisées en dossiers contenant le fichier .txt sur lequel je souhaite exécuter le script. Existe-t-il un moyen de coller le fichier de script dans le dossier parent contenant tous les sous-dossiers contenant les fichiers .txt et de le faire parcourir chaque dossier (en ouvrant les fichiers .txt dans les dossiers et en exécutant le script sur chaque .txt) fichier au fur et à mesure) ?
J'ai configuré le script en ce moment pour qu'il puisse renvoyer le chemin du fichier actuel où se trouve le script en utilisant , et pour le moment, je dois définir explicitement (tapez dans le script) le nom du fichier pour ouvrir le fichier de données.
Utilisation de JMP 17.
Merci d'avance!
Organisation du contenuRe : Parcourir les dossiers d'un répertoireétendre @Jed_Campbell exemple un peu,
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
);
Copier le nom de fichier dans dt sert simplement à indiquer clairement quel est l'élément de liste. Vous pourriez dt<
Re : Parcourir les dossiers d'un répertoireJed,
On dirait que les données d'importation de fichiers multiples fonctionnent, cependant, je n'arrive pas à faire fonctionner la fonction "pour chaque". Il semble qu'il ne parcourt pas la liste des fichiers créés avec l'importation de fichiers multiples - j'obtiens 33 fois la même valeur de retour de mon script (33 est le nombre d'éléments dans la liste des fichiers).
Re : Parcourir les dossiers d'un répertoireMerci pour les conseils!
Re : Parcourir les dossiers d'un répertoireMerci pour la réponse - j'essaierai bientôt !
Re : Parcourir les dossiers d'un répertoireEt si MFI ne fait pas ce dont vous avez besoin, FilesInDirectory(...) renvoie une liste de fichiers et de répertoires. isFile() et isDirectory() et FileCreationDate() et FileModificationDate() peuvent vous aider à obtenir ce dont vous avez besoin. (noms approximatifs, vérifiez l'index des scripts.) Je pense FilesInDirectory fait pas renvoyer les répertoires lorsque le récursif est utilisée. Il peut y avoir des éléments dans la liste qui ne sont pas des fichiers ou des répertoires, utilisez donc le test qui a le plus de sens. Mais si MFI le fait, vous aurez un script JSL plus simple.
Re : Parcourir les dossiers d'un répertoireLa fonction Multiple File Import() est un raccourci fantastique pour cela, car elle renvoie une liste de fichiers. Je suggère de faire d'abord l'importation via l'interface graphique, puis de simplement copier le script et de le modifier si nécessaire. Pseudo-script ci-dessous :
m = Multiple File Import (lots of settings);
lstFiles = m << import data;
for each ({filename}, lstFiles,
//your script for each file
);