Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python subprocess.Popen-`cwd`不受尊重_Python_Subprocess_Python 2.6 - Fatal编程技术网

Python subprocess.Popen-`cwd`不受尊重

Python subprocess.Popen-`cwd`不受尊重,python,subprocess,python-2.6,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\D

不管出于什么原因

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()

使用Win7和Python2.6和2.7进行测试,工作正常(STDOUT::C:\test)


因此,这似乎与WinXP有关。

使用Win7和Python2.6和2.7进行测试,结果与预期一致(STDOUT::C:\test)。所以这似乎与WinXP有关。@RobertCaspary认为,好吧,谢谢你,Robert,在回答中总结这一点,要点是你的。不起作用,试过了<代码>子流程不支持主流程工作目录。启动时,它将获得默认的终端启动位置,并从那里开始。