I've a python script that has to launch a shell command for every file in a dir:
import os files = os.listdir(".") for f in files: os.execlp("myscript", "myscript", f)
This works fine for the first file, but after the "myscript" command has ended, the execution stops and does not come back to the python script.
How can I do? Do I have to
subprocessmodule allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes.
import subprocess process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) process.wait() print process.returncode
You can use
subprocess.Popen. There's a few ways to do it:
import subprocess cmd = ['/run/myscript', '--arg', 'value'] p = subprocess.Popen(cmd, stdout=subprocess.PIPE) for line in p.stdout: print line p.wait() print p.returncode
Or, if you don't care what the external program actually does:
cmd = ['/run/myscript', '--arg', 'value'] subprocess.Popen(cmd).wait()