Running Other Programs
You can run other programs via functions in the os
module or, in Python 2.4, by using the new subprocess
module.
Running Other Programs with the os Module
In Python 2.4, the best way for your program to run other processes is with the new subprocess
module, covered in The Subprocess Module. However, the os
module also offers several ways to do this, which in some cases may be simpler or allow your code to remain backward-compatible to older versions of Python.
The simplest way to run another program is through function os.system
, although this offers no way to control the external program. The os
module also provides a number of functions whose names start with exec
. These functions offer fine-grained control. A program run by one of the exec
functions replaces the current program (i.e., the Python interpreter) in the same process. In practice, therefore, you use the exec
functions mostly on platforms that let a process duplicate itself by fork
(i.e., Unix-like platforms). os
functions whose names start with spawn
and popen
offer intermediate simplicity and power: they are cross-platform and not quite as simple as system
, but simple and usable enough for most purposes.
The exec
and spawn
functions run a specified executable file, given the executable file’s path, arguments to pass to it, and optionally an environment mapping. The system
and popen
functions execute a command, which is a string passed to a new instance of the platform’s default shell (typically ...
Get Python in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.