Importez plusieurs fichiers CSV dans un dossier et empilez-lesSalut tout le monde,
J'ai un problème avec mes fichiers CSV, qui ont un séparateur étrange ( "," ) et je n'arrive pas à comprendre comment faire pour que JMP les importe automatiquement.
Mon objectif est de pouvoir choisir un dossier contenant plusieurs fichiers CSV, avec la même structure et les mêmes noms de colonnes, importer toutes les données et les empiler.
J'ai joint un fichier CSV qui ressemble à mon fichier.
J'espère que vous pourrez m'aider:)
Salut, Christian
Automatisation et scriptsAccès aux donnéesPersonnalisation de masseRe : Importer plusieurs fichiers CSV dans un dossier et les empilerplus encore, les guillemets sont 1, 2 et 3 :

Peut-être que la meilleure solution est de réparer l'exportation du fichier : )
Une autre solution : utiliser « Notepad++ » / Remplacer dans les fichiers :

pour se débarrasser des guillemets.
Re : Importer plusieurs fichiers CSV dans un dossier et les empilerDans JMP,
Texte en colonnes est L'outil pour gérer de tels groupes de séparateurs :
peu importe que ce soit " ou "","" ou """
il traite plusieurs séparateurs comme un seul (!)
Cela peut être très dangereux : Texte en colonnes : gérer correctement les données manquantes
... mais c'est souvent exactement ce dont nous avons besoin, comme ici.
Donc,
a) charger les fichiers via MFI avec l'option « Ligne par ligne »
b) et utilisez Texte en colonnes avec des délimiteurs = ,"

dts = Multiple File Import(
<
<SET folder="">
</SET>
<BR />
Re : Importer plusieurs fichiers CSV dans un dossier et les empilerVous semblez également avoir "" à la fin de chaque ligne et la première colonne n'a pas le format "," mais plutôt ,".

Je ne suis pas sûr que cela fonctionnera pour tous vos fichiers, mais je les traiterais comme du texte, les nettoierais dans un csv « approprié », puis l'ouvrirais depuis la mémoire dans une table JMP.
Names Default To Here(1);
filedir = "$DOWNLOADS\New folder (2)\";
csvfiles = {};
For Each({filename}, Files In Directory(filedir),
If(Ends With(filename, ".csv"),
Insert Into(csvfiles, filedir || filename);
);
);
dt_res = Empty();
For Each({csvfile}, csvfiles,
txt = Load Text File(csvfile);
lines = Words(txt, "\!N");
lines_fixed = Transform Each({line}, lines,
items = Concat items(Words(line, "\!","), ",");
);
csv_txt = Concat Items(lines_fixed, "\!N");
dt = Open(Char to Blob(csv_txt), "text", Invisible);
dt << Set Name(Word(-1, csvfile, "\/"));
If(Is Empty(dt_res),
dt_res = dt;
,
dt_res << Concatenate(
dt,
"Append to first table";
);
Close(dt, no save);
);
);
dt_res << Bring Window To Front;
Re : Importer plusieurs fichiers CSV dans un dossier et les empilerAh, c'est vrai, mots() utilise la même astuce que Texte en colonnes() .
Re : Importer plusieurs fichiers CSV dans un dossier et les empilerCreuser plus profondément :
le problème principal est le

dans les paramètres MFI.
JMP se contente du premier et du dernier guillemet - et lit toute la ligne de texte comme une seule colonne (en gardant un guillemet sur deux ?!?) :

edit : premier et dernier guillemet ? non, c'est plus compliqué - voir ci-dessous !
Comme solution rapide, on peut modifier le paramètre de citation CSV en un autre caractère :

<
<SET csv="" quote=""></SET>
<P>et utilisez le guillemet lui-même comme séparateur :</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_2-1756463581618.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81530i4BF1266286F27E58/hogi_2-1756463581618.png" role="button" title="hogi_2-1756463581618.png" alt="hogi_2-1756463581618.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><BR />Cela permet à JMP de lire les fichiers - mais :</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81531iE7879526B8F81200/hogi_3-1756463633644.png" width="773" height="87" role="button" title="hogi_3-1756463633644.png" alt="hogi_3-1756463633644.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P>différent de <FONT face="courier new,courier">Mots()</FONT> et <FONT face="courier new,courier">Texte en colonnes()</FONT> , <FONT face="courier new,courier">IMF</FONT> traite chaque séparateur (unique) comme un séparateur<BR /> avec l'idée : données manquantes = données manquantes, pas de colonne sautée !</P> <P>Merci MFI, pour la plupart des fichiers, cela a du sens :-)</P> <BR /> <P>Pas ici - donc, après l'importation, l'utilisateur doit supprimer les colonnes vides.<BR /><BR /> Attention : l'importation du fichier avec un paramètre de citation CSV vide ne fonctionne pas.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_4-1756463762291.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81533iF2FFDC8A29503E1D/hogi_4-1756463762291.png" role="button" title="hogi_4-1756463762291.png" alt="hogi_4-1756463762291.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <CODE class=" language-jsl"><
<SET csv="" quote=""></SET> <P>JMP utilisera automatiquement un guillemet comme guillemet CSV et chargera l'ensemble du fichier en une seule colonne.</P>
Re : Importer plusieurs fichiers CSV dans un dossier et les empilerpour plus de plaisir avec les citations MFI et CSV
utilisez le fichier ci-joint
entrée : JMP :

Une fois qu'une hypothèse a été établie qui correspond aux lignes 1 à N, il est facile de trouver un cygne noir pour la ligne N+1...
Re : Importer plusieurs fichiers CSV dans un dossier et les empiler0. s'il y a des caractères devant les guillemets, ce n'est pas un guillemet CSV.
- si le premier caractère de la cellule est un guillemet, c'est un guillemet CSV -> analyser pour trouver le guillemet fermant
- si sur votre chemin il y a deux guillemets adjacents, traitez-les comme un guillemet simple

- si sur votre chemin vous trouvez une virgule, c'est une virgule
- si sur votre chemin vous trouvez une nouvelle ligne, c'est une nouvelle ligne (!!)
en fait, le contenu de la cellule est :

- d'autres personnages intéressants ? ...
- si vous trouvez un guillemet fermant, la citation est complète
- rechercher un délimiteur ou un saut de ligne.
n'importe quel caractère que vous trouvez : ajoutez-le simplement à la citation.
- ici : un guillemet simple est un guillemet simple
- 2 guillemets sont 2 guillemets (comparer #2)
- si vous trouvez un délimiteur ou un saut de ligne, c'est la fin de la cellule (comparer #4)
- Avec un espace devant la citation, la citation n'est pas une citation CSV.
(sous-ensemble de #0)
Il m'a fallu un certain temps pour comprendre 
d'après le post précédent, c'est pourquoi je l'ai ajouté comme un cas séparé.
fichier csv : JMP :

Re : Importer plusieurs fichiers CSV dans un dossier et les empilerÀ la lumière des nouvelles découvertes, le tableau de données de l’article original semble désormais plus familier :
Cela ressemble à un tableau de données qui, dans la première étape (« V1 »), a été exporté avec des guillemets ajoutés aux colonnes numériques et de caractères (seule la première colonne n'a pas reçu les guillemets supplémentaires :

Étonnamment :
La V1 peut être ouverte dans JMP et Excel par glisser-déposer. Les deux programmes décompressent automatiquement les guillemets CSV et chargent le tableau au format correct. Comment passer de la V1 à la V2 ?CSV avec un fichier sep.csv étrange ?
Ce qui fonctionne :
étape 2 : ouvrir V1 sous forme de tableau séparé par des tabulations (au lieu d'un fichier CSV avec des guillemets CSV)
étape 3 : enregistrez le tableau au format csv (dans cette étape [dans JMP et Excel], les guillemets supplémentaires au début et à la fin de chaque ligne sont ajoutés automatiquement et les guillemets simples sont remplacés par des guillemets 2x)
Le processus inverse devrait être simple :
Ouvrez simplement un fichier CSV avec un fichier sep.csv étrange dans JMP ou Excel. Les deux programmes suppriment automatiquement les guillemets et reconvertissent les guillemets doubles en guillemets simples. Voici à quoi cela ressemble dans Excel :

exactement comme ce que nous voulons :

Alors, sauvegardons le tableau de données au format csv - et chargeons-le à nouveau : )
dans JMP, nous pouvons désactiver les options :
]
Malheureusement, l'encodage CSV est activé par défaut. D'un côté, c'est raisonnable : enregistrer le fichier sans guillemets CSV modifierait considérablement la structure des données !
Mais en fait, c'est ce que nous voulions.
Donc, le seul moyen (?) est de copier les entrées de JMP ou Excel dans un éditeur de texte et d'enregistrer v1.txt à partir de là.
L'éditeur de texte ne connaît pas les guillemets CSV et enregistre le texte tel quel.
Re : Importer plusieurs fichiers CSV dans un dossier et les empiler@hogi @jthi Merci beaucoup pour vos réponses et vos efforts ! C'est encore pire que ce que j'imaginais !
Je vais devoir passer un peu de temps à fouiller dans vos réponses, mais je voulais vous remercier tout de suite.:)
Salut, Christian