Affichage d'un fichier suivi de l'arrêt du script

Fermé
Vindaloo - 5 févr. 2023 à 17:53
jee pee Messages postés 40626 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 6 janvier 2025 - 7 févr. 2023 à 19:05

Bonjour,

J'ai écrit un script qui extrait des données d'un fichier xml et qui les enregistre dans un fichier csv.

À la fin de l’exécution je souhaiterait que le fichier csv soit affiché pour l'utilisateur.

Mon problème c'est que si j'utilise la commande os.system("mon_fichier"), le programme ne s'arrête qu'à la fermeture de ce dernier.

Quelqu'un aurait-il une meilleur façon de procéder svp ?
Windows / Firefox 109.0

A voir également:

6 réponses

Salut, sur linux, fastoche.

import subprocess

subprocess.call("programme &", shell=True)

DSur windows, aucune idée, il doit aussi y avoir une façon de lancer un programme non bloquant, peut-être  avec ShellExecute ? C'est plus une question à poser sur le forum windows je pense.

Bonne chance.

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
6 févr. 2023 à 17:33

Bonjour,

Avec Windows, je fait comme ça:

os.popen(filename)

le fichier s'ouvre dans mon éditeur de texte favori, mais cela n'empêche pas le déroulement du reste du programme

0
Vindaloo Messages postés 3 Date d'inscription dimanche 5 février 2023 Statut Membre Dernière intervention 7 février 2023
6 févr. 2023 à 17:53

Bonjour,

Merci pour vos réponses.

Du coup, petite précision je travaille avec Windows.

Alors je  viens d'essayer la commande os.popen(filename) et ça fonctionne comme indiqué merci.

Ce qui me dérange c'est que mon programme ne s'arrête pas. Même si j'ajoute après un sys.exit().

À noter que si j'arrête mon script manuellement dans Eclipse le fichier Excel se ferme.

J'ai essayer d'utilisé le module atexit, mais peut être que je m'y prends mal. Le code :

def open_file():
    os.system(str(Path(path_file.parent, "Intensité.csv")))
    
atexit.register(open_file)

Cela déclenche bien l'ouverture du fichier mais le programme ne s'arrête pas pour autant...

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
6 févr. 2023 à 18:30

Ah ?

Moi je fais simplement ceci:

import os

print('''Ouverture du fichier dans l'éditeur''')
os.popen('test1.txt')

#suite du code
for k in range(10):
    print(k)

input('Presser Entrée pour terminer ...')

Le fichier s'ouvre dans l'éditeur et la suite du programme s'effectue jusqu'à la fin:

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vindaloo Messages postés 3 Date d'inscription dimanche 5 février 2023 Statut Membre Dernière intervention 7 février 2023
6 févr. 2023 à 19:03

Tout à fait d'accord avec toi sur ça.

Cela dit le programme ne s'arrête pas tant que le fichier n'a pas été fermé.

L'objectif est que le programme soit utilisé par des utilisateurs autre que mois et ça me gêne un peu qu'il soit toujours en fonctionnement si la personne ne pense pas à fermer le fichier manuellement.

0

Salut, c'est bien pour cela que je t'ai conseillé de demander sur le forum windows, car, c'est bien par le système d'exploitation que cela doit se gérer.

0
Vindaloo Messages postés 3 Date d'inscription dimanche 5 février 2023 Statut Membre Dernière intervention 7 février 2023
7 févr. 2023 à 17:55

Salut,

Ok, merci pour vos conseils.

Je vais essayer ça.

0
jee pee Messages postés 40626 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 6 janvier 2025 9 477
7 févr. 2023 à 19:05

Bonjour,

Il faudrait voir si lancer le programme via une commande start peut fonctionner.

Dans un .cmd, si on lance un sous-process par call, le script reste en attente de la fermeture du programme lancé, par contre avec start, le script continue

call notepad.exe
pause
start notepad.exe
pause
exit
0