6.8.3.3 Replacing os.system()
sts = os.system("mycmd" + " myarg") ==> p = Popen("mycmd" + " myarg", shell=True) sts = os.waitpid(p.pid, 0)
Notes:
- Calling the program through the shell is usually not required.
- It's easier to look at the returncode attribute than the exit status.
A more realistic example would look like this:
try: retcode = call("mycmd" + " myarg", shell=True) if retcode < 0: print >>sys.stderr, "Child was terminated by signal", -retcode else: print >>sys.stderr, "Child returned", retcode except OSError, e: print >>sys.stderr, "Execution failed:", e
See About this document... for information on suggesting changes.