【发布时间】:2015-10-07 19:55:57
【问题描述】:
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盒子里
【问题讨论】:
-
当你生成一个子shell并改变目录时,一旦那个子shell关闭它就消失了。修改 subshell 中的 pwd 不会影响 parent。也许您想用
os.chdir更改密码? docs.python.org/2/library/os.html 。你也可以通过调用os.mkdir来做类似的事情(没有子进程)。os模块的优势在于它旨在实现可移植性(因此您无需了解操作系统使用的底层机制)
标签: python subprocess