subprocess.call cd无法正常工作

时间:2015-10-07 19:55:58

标签: python subprocess

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,但无法更改到该目录,即使它返回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框中

2 个答案:

答案 0 :(得分:7)

subprocess.call()创建进程。 cd在该过程中起作用,但是当进程退出时,它不会影响当前进程。这就是流程的设计方式。

如果您需要将脚本更改为其他目录,可以使用os.chdir来更改当前进程的目录。

答案 1 :(得分:2)

对于此任务,使用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]: 

如果您现在有任何问题请告诉我!