I do not understand why you don't want the so simple fork/exec pattern ! In UNIX programming this is the way to go ...
I cannot think of anything simpler than that :
for i in xrange( 10 ):
pid = os.fork()
if not pid:
os.execv( "/bin/echo", [ "echo", "toto" ] )
try:
while True:
os.wait()
except OSError:
pass
print "all done"I fear that python programming is a little less process-oriented than shells ... but then, it is just normal for an all-purpose language (or at least an all-purpose wanna-be language ;) ).
Pierre
chumpy town a �crit :
Hello all, I am trying to convert from bash to python for scripting. What is the simplest & cleanest way to do the following in python:
#!/bin/bash for i in `seq 1 1000` do my-other-script & done wait echo "all done"
I at first tried os.system("my-other-script &") and os.wait() but this
caused os.wait() to throw an exception and say no child processes. Alternatively, I know I can use os.fork(), os.exec() and os.wait() but
this seems cumbersome. As a second alternative, os.spawnlp() and
os.wait() works, but I need to additionally redirect the spawned
process' stdout to the spawnee's stdout, etc. - again an extra step.
Experienced python programmers, what's the best thing to do here? Thanks a lot!
-david _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
-- Pierre Barbier de Reuille
INRA - UMR Cirad/Inra/Cnrs/Univ.MontpellierII AMAP Botanique et Bio-informatique de l'Architecture des Plantes TA40/PSII, Boulevard de la Lironde 34398 MONTPELLIER CEDEX 5, France
tel : (33) 4 67 61 65 77 fax : (33) 4 67 61 56 68 _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
