子流程.波本-“cwd”不受尊重



无论出于何种原因,

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 SettingsmyusernameDesktop

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

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

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

这是错误的。

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

os.chdir('c:\test')

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

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

os.getcwd()

使用Win7和Python 2.6和2.7进行了测试,工作正常(STDOUT::C:\test)。

因此,这似乎与WinXP有关。

最新更新