python - subprocess.Popen - `cwd` 不被尊重

标签 python subprocess python-2.6

无论出于什么原因,

from subprocess import Popen, PIPE, STDOUT
handle = Popen('echo %CD%', shell=True, stdout=PIPE, stderr=STDOUT, stdin=PIPE, cwd=r'C:\test')
print 'STDOUT::',handle.stdout.readline().strip()

给我:

STDOUT:: C:\Documents and Settings\myusername\Desktop

Windows XP(无论出于何种原因)
Python 2.6.6

这可能与 Windows 在行中执行命令的方式有任何相似之处,例如:

C:\> cd "C:\test\" && echo %CD%
C:\

这是错误的。

最佳答案

如果您只是想更改当前工作目录,您可以使用:

os.chdir('c:\\test')

请注意双反斜杠,因为反斜杠是 Python 中需要转义的特殊字符。

此外,要检查当前的工作目录,您可以使用:

os.getcwd()

关于python - subprocess.Popen - `cwd` 不被尊重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18509979/

相关文章:

python - NumPy:以 n 为底的对数

python - 即使编辑后端并使用 pylab.show() 后,matplotlib 图也不会出现

python - 如何使用 | 调用多个 bash 函数在 python

python - 从子进程标准输出关闭文件

python - 检查文件描述符是否有效

python - 在 Windows 上安装 Python 模块的最佳实践

python - 如何让我的函数找到我的excel表?

python - 写入标准输入并正确打印结果

python - 如何获取当前正在运行的模块路径/名称

python - fd.seek() IOError : [Errno 22] Invalid argument