subprocess.call CD 不工作

subprocess.call cd not working

In [3]: pwd

Out[3]: u'/Users/aarcher/Desktop/scripts'


In [5]: subprocess.call(['mkdir', '-p', os.path.expanduser('~/file/path/name')])

Out[5]: 0

我在另一个终端验证它已成功创建 /Users/aarcher/file/path/name,但无法更改到该目录,即使它 returns 0:

In [7]: subprocess.call(['cd', os.path.expanduser('~/file/path/name')], shell=True)

Out[7]: 0

In [8]: pwd

Out[8]: u'/Users/aarcher/Desktop/scripts'

我在 unix 盒子里

subprocess.call() 创建一个 new 进程。 cd 在那个进程中工作,但是当进程退出时它不会影响当前进程。这就是流程设计的工作方式。

如果您需要将脚本更改到不同的目录,您可以使用 os.chdir 这将更改当前进程的目录。

对于此任务,使用 suprocess 不是个好主意。只需使用 python os 模块 试试这个::

In [12]: import os 

In [13]: os.getcwd()
Out[13]: '/home/najeeb'

In [14]: os.chdir('/home/najeeb/Desktop/project/')

In [15]: os.getcwd()
Out[15]: '/home/najeeb/Desktop/project'

In [16]: 

如果您现在遇到任何问题,请告诉我!