Comment écrire des fichiers .jmp avec JMP en PythonBonjour, j'utilise JMP 19.1.1
Je vois des exemples de la façon d'utiliser JMP ou JSL pour ouvrir des fichiers, ajouter des scripts JSL pour le traçage et ensuite les exécuter.
Existe-t-il des exemples d'utilisation de JMP Python pour ouvrir des fichiers CSV et créer des fichiers .jmp contenant des graphiques ? Comment procèdent les utilisateurs ?
Adrian
Automatisation et scriptageAnalyse et modélisation de données de baseAccès aux donnéesRe : Comment écrire des fichiers .jmp avec JMP en PythonL'enregistrement peut être effectué avec la méthode sauvegarder de DataTable.

Pour ajouter des scripts de tableau, vous pouvez utiliser soit vrai_jsl , soit des scripts avec jmp.Expression .

Re : Comment écrire des fichiers .jmp avec JMP en PythonSalut,
Merci pour votre réponse. Je parle de ne pas utiliser les bibliothèques JMP. J'utilise du code Python qui traite des données et génère des fichiers CSV. Je souhaite maintenant écrire des fichiers .jmp. Est-ce possible ? Par exemple, est-il possible d'exporter directement un DataFrame Pandas en .jmp ?
Merci
Re : Comment écrire des fichiers .jmp avec JMP en PythonÀ ma connaissance, non. Il faudrait exécuter le script Python dans JMP.
Re : Comment écrire des fichiers .jmp avec JMP en PythonVoici ce que j'essaie d'exécuter :
from pathlib import Path
importer jmp
csv_path = Path(r"C:\Work\debug\jmp_debug\CT_Pro_PRO0CV2_pass_fail_05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\CT_Pro_PRO0CV2_pass_fail_05302026.jmp")
print("Ouverture :", csv_path)
dt = jmp.open(str(csv_path))
print("Enregistrement :", out_path)
dt.save(str(out_path))
print("Terminé")
Je lance JMP de cette manière : `& "C:\Program Files\JMP\JMP\19\jmp.exe" -R "C:\Work\debug\jmp_debug\jmp_csv_to_jmp_simple.py"` dans PowerShell. Le problème est que cela ouvre trois fenêtres. Savez-vous s'il existe un moyen d'exécuter JMP en mode sans interface graphique ? Autrement dit, comment l'exécuter sans qu'une multitude de fenêtres s'ouvrent ?
Re : Comment écrire des fichiers .jmp avec JMP en PythonLa principale raison d'utiliser directement le format .jmp est que ces fichiers pèsent entre 4 et 10 Go au format CSV. C'est donc fastidieux. Idéalement, nous pourrions passer un DataFrame pandas à la table .jmp et l'écrire.
Re : Comment écrire des fichiers .jmp avec JMP en PythonC'est vraiment pénible. Apparemment, il n'y a pas de moyen simple de faire fonctionner ce programme en mode sans interface graphique. C'est vraiment surprenant. Je dois me tromper et ne pas avoir la documentation adéquate. Si quelqu'un sait comment exécuter jmp en mode sans interface graphique, ce serait très utile. Autrement dit, je voudrais pouvoir l'exécuter dans un script sans que trois ou quatre nouvelles fenêtres ne s'ouvrent.
Re : Comment écrire des fichiers .jmp avec JMP en PythonAvec JMP 19.1.3 et Python 3.13.3 standard (sans JMP), j'ai constaté l'amélioration suivante : seule la fenêtre de création du fichier .jmp s'affiche. On s'approche donc d'une solution. J'aimerais toutefois savoir s'il existe des informations supplémentaires pour un fonctionnement sans interface graphique.
from pathlib import Path
temps d'importation
importer win32com.client
def jsl_quote(chemin_ou_texte) -> str:
texte = str(chemin_ou_texte)
texte = texte.replace("\\", "\\\\").replace('"', '\\"')
retourner f'"{texte}"'
csv_path = Path(r"C:\Work\debug\jmp_debug\05302026.csv")
out_path = Path(r"C:\Work\debug\jmp_debug\05302026.jmp")
jmp = win32com.client.Dispatch("JMP.Application")
# Essayez d'abord False. Si rien ne fonctionne, définissez True lors du débogage.
jmp.Visible = Faux
jsl = f"""
Les noms par défaut sont ici ( 1 );
dt = Open({jsl_quote(csv_path)},Invisible);
dt << Enregistrer sous( {jsl_quote(out_path)} );
Fermer( dt, Pas de sauvegarde );
""
print("Exécution de JSL...")
jmp.RunCommand(jsl)
# Donnez un instant à JMP si RunCommand renvoie une valeur avant la fin de l'enregistrement.
temps.sommeil(2)
print("Enregistré ?", out_path.exists(), out_path)
Re : Comment écrire des fichiers .jmp avec JMP en PythonLa gestion des fichiers volumineux au format CSV est fastidieuse. Je vous suggère d'exporter vos fichiers au format Parquet, puis d'importer pyarrow dans JMP. Chargez ensuite le fichier Parquet, qui peut être converti en DataFrame pandas presque instantanément. JMP peut lire directement les colonnes pandas pour construire un tableau de données et propose la fonction `jmp.from_dataframe(df)`. Si vous utilisez pandas 3.0 ou une version ultérieure, des avertissements de dépréciation apparaissent, mais ils ont été corrigés dans les versions de développement de JMP grâce à l'utilisation directe de l'interface PyCapsule de pyarrow. Le format CSV présente également l'inconvénient d'être imprécis. Vérifiez la précision de vos décimales. La conversion d'une chaîne de caractères en nombre à virgule flottante peut entraîner de légères différences, d'autant plus qu'il s'agit d'une conversion entre un format numérique et CSV.
Re : Comment écrire des fichiers .jmp avec JMP en PythonJMP peut lire/écrire nativement les fichiers sqlite si vous souhaitez utiliser un format autre que csv.
Actuellement, lors de l'écriture/exportation, un fichier SQLite est créé par table de données JMP. SQLite peut contenir plusieurs tables dans un seul fichier.
Re : Comment écrire des fichiers .jmp avec JMP en Pythonsqlite3 limite le nombre de colonnes à 64 000. Si vous êtes en dessous de cette limite, tout devrait bien se passer, mais je vous recommande tout de même de vérifier la taille de la base de données résultante. Elle pourrait ne pas être beaucoup plus petite si vos fichiers sont principalement du texte. Les données numériques occupent généralement beaucoup moins d'espace que les fichiers CSV.