Salut
Tu parle , il est pas élégant ce code ;) , il déchire OUI :), Juste que en
plus des methodes poll ,Supprocess.Popen contient plusieurs autres méthodes
qui permettent de  faire attendre le pocess
 fils jusqu'a ce qu'il  soit terminé  avant de  donner la main au processus
père . Regarde *communicate*  et  *wait*, ils permettent de simuler ce que
tu fait avec ta bouble.Voici une liste des  méthodes de subprocess.Popen,
mais il y'a en plus je crois  , ma version de Python n'est pas a jour.

__class__
__del__
__delattr__
__dict__
__doc__
__format__
__getattribute__
__hash__
__init__
__module__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__
__weakref__
_communicate
_execute_child
_find_w9xpopen
_get_handles
_internal_poll
_make_inheritable
_readerthread
_translate_newline
communicate
kill
poll
send_signal
terminate
wait

1 - [http://docs.python.org/library/subprocess.html#subprocess.Popen.wait]

A+




Le 9 mai 2011 16:58, Thomas AYIH-AKAKPO <[email protected]> a écrit
:

> 'lut
>
> Je me suis lancé dans la gestion des processus en Python et je me heurte à
> un petit souci. Je vais partir d'un exemple.
> On va imaginer que je lance un ping, et que si jamais le processus se
> termine (quelque soit la manière) j'affiche un texte.
>
> Moi je le coderais comme ceci:
>
> import subprocess, shlex, time
>
> commande = "ping dakarlug.org"
> args = shlex.split(commande)
> f = open("sortie.txt","w")
> logfile = open("log.txt","w")
> process = subprocess.Popen(args, stdout=f, stderr=logfile) #la commande est
> lancée en arrière plan
>
> while True:
>     r = process.poll() #poll va renvoyer un entier si jamais le processus
> est terminé, quelque soit la raison.
>     if r is not None
>         print "process ended"
>     time.sleep(10)
>
>
> Je trouve que ça marche, seulement ça ne me parait pas très élégant ma
> boucle infinie.
> Quelqu'un parmi vous aurait des suggestions?
> Je cherche trop loin et en fait cette façon de faire est bonne?
> Pensez vous qu'il faille gérer autrement?
>
> Waiting for your advices,
> Merci ;)
>
> --
> e-mail: [email protected]
> jabber: [email protected]
>
>
> --
> Ce message a été envoyé à la liste [email protected]
> Gestion de votre abonnement : http://dakarlug.org/liste
> Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
> Le site du DakarLUG : http://dakarlug.org
>
--
Ce message a été envoyé à la liste [email protected]
Gestion de votre abonnement : http://dakarlug.org/liste
Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
Le site du DakarLUG : http://dakarlug.org

Répondre à