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

Vindaloo -  
jee pee Messages postés 41518 Date d'inscription   Statut Modérateur Dernière intervention   -

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

raplapla
 

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   Statut Membre Dernière intervention   168
 

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   Statut Membre Dernière intervention  
 

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   Statut Membre Dernière intervention   168
 

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   Statut Membre Dernière intervention  
 

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
raplapla
 

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   Statut Membre Dernière intervention  
 

Salut,

Ok, merci pour vos conseils.

Je vais essayer ça.

0
jee pee Messages postés 41518 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 

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