I'm using os.system()
to do Windows command line shell executions. I would like to change the Windows cmd current directory. Here's one way of doing it:
os.chdir('newPath')
But chdir()
will also change the actual Python current working directory. I don't want to change the actual Python working directory because I want other parts of my script to run in the original current working directory. What I want to change is only the Windows cmd current working directory. In other words: I want os.system()
commands to run in one current working directory (Windows cmd current working directory) while anything else should run in another current working directory (the actual Python current working directory).
Here's another try to change only the Windows cmd current directory:
os.system('cd newPath')
However, that obviously doesn't work since right after the execution of the cd newPath
command the Windows cmd current directory is reset (because I won't use the same Windows command shell in the next call to os.system()
).
Is it possible to have a separate current working directory for the Windows cmd shell? (separate from the actual current working directory).
The
subprocess
module is intended to replaceos.system
.Among other things, it gives you
subprocess.Popen()
, which takes acwd
argument to specify the working directory for the spawned process (for exactly your situation).See: http://docs.python.org/library/subprocess.html
Example usage replacing
os.system
: