Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
436 views
in Technique[技术] by (71.8m points)

python - How can I specify working directory for popen

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

For example:

Popen('c:mytoolool.exe', workingdir='d:estlocal')

My Python script is located in C:programspython

Is is possible to run C:mytoolool.exe in the directory D:estlocal?

How do I set the working directory for a sub-process?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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:estlocal' so that the backslashes aren't interpreted as escape sequences by Python. The way you have it written, the part will be translated to a tab.

So, your new line should look like:

subprocess.Popen(r'c:mytoolool.exe', cwd=r'd:estlocal')

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

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...