Bonjour,

Je suis face à un problème que je n'arrive pas à résoudre même en essayant les différents postes et en lisant la faq.

Durant mon script python je dois faire appel à un script extern, et je dois attendre la sortie de ce script pour continuer car il me faut le résultat.
Le problème et que le script python n'attend pas.
J'explique quand meme les solutions que j'ai testé :

Le os.system -> qui normalement devrait attendre n'attend pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
        out_profit = tempfile.mktemp(prefix="PROFITRES")
        os.system(PROFIT+" -h -f %s > %s"%(protocole_file,out_profit))
 
        f_out = open(out_profit,"r")
        print f_out.read()
Ne fonctionne pas

Je précise que le program externe que j'appelle est un program avec interpreteur. On tappe les commandes et ça renvoie les résultats mais le temps de calcul est assez long.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
        import subprocess
        out_profit = tempfile.mktemp(prefix="PROFITRES")
 
        p = subprocess.Popen(PROFIT+" -h -f %s > %s"%(protocole_file,out_profit), shell=True)
        sts = os.waitpid(p.pid, 0)
        f_out = open(out_profit,"r")
        print f_out.read()
ne fonctionne pas.


Auriez vous une solution (de préférence facile à comprendre) à me proposer qui ne soit pas lourde. Au point de faire des sleeps et des lectures des top sous linux.
Merci par avance,
Mister