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框中
答案 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]:
如果您现在有任何问题请告诉我!