Bonjour,
j'ai 2 scripts python: test.py et test2.py, ce dernier étant appelé par test.py.

voici test2.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#!/usr/bin/env python
print "toto"
voici test.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#!/usr/bin/env python
import os
cmd = "echo test...\n"
cmd += "test2.py &> /dev/null\n"
cmd += "if [ $? != 0 ]; then echo error; else echo ok; fi;\n"
os.system( cmd )
Donc, lorsque j'exécute test.py dans un shell, je m'attends à avoir:
bash$ test.py
test...
ok
bash$

Or j'obtiens ça suivit de "toto", et le programme tourne toujours. Je dois faire un Ctrl+C pour récupérer le prompt...

Pourquoi ?
Y a-t-il un moyen d'éviter ça ?
Pourquoi le "&>/dev/null" ne fonctionne pas ?
Cela doit etre du à la façon dont Python gère le "os.system"...

Merci de toute aide !