无论出于何种原因,
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有关。