Home » Python » Python specify popen working directory via argument

Python specify popen working directory via argument

Posted by: admin November 1, 2017 Leave a comment

Questions:

Is there a way to specify the running directory of command in python’s subprocess.Popen() ?

For example:

Popen('c:\mytool\tool.exe',workingdir='d:\test\local')

My python script is located in C:\programs\python

Is is possible to run C:\mytool\tool.exe in the directory D:\test\local ?

How do I set the working directory for subprocess?

Answers:

subprocess.Popen takes a cwd argument to set the Current Working Directory; you’ll also want to escape your backslashes ('d:\\test\\local'), or use r'd:\test\local' so that the backslashes aren’t interpreted as escape sequences by Python. The way you have it written, the \t part will be translated to a tab.

So, your new line should look like:

subprocess.Popen(r'c:\mytool\tool.exe', cwd=r'd:\test\local')

To use your Python script path as cwd, import os and define cwd using this:

os.path.dirname(os.path.realpath(__file__))