Python itself defines a few
process-manipulation functions that are portable across all
platforms, including Windows. As they are portable to Unix and other
operating systems, they operate at a high level and don’t cover
the range of functionality provided natively. The Python
os module provides a number of techniques for
starting new processes.
provides the most rudimentary support
for new processes. It takes a single argument (the command line of
the process to execute) and returns an integer “error
code.” For example:
>>> import os >>> os.system("notepad.exe C:\\autoexec.bat") 0 >>>
starts an instance of notepad, editing your autoexec.bat file. The exit code from the program is zero. Unfortunately, the result of zero is often misleading; the Windows command processor responsible for executing these commands usually refuses to pass the actual error code on, always reporting a success code of zero.
The single parameter can be anything that typically works from a
Windows command prompt. Thus, the system
searched for the program.
There are, however, a number of other limitations to this approach. First, if you execute this code from PythonWin (or any other GUI Python environment) you will notice that an empty command prompt opens. Windows knows you are running from a GUI, but isn’t smart enough to look at the program to execute to determine if it too is a GUI program; so it creates a new console for the program. This ...