python - subprocess.call cd 不工作

标签 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 盒子里

最佳答案

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

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

关于python - subprocess.call cd 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33001309/

相关文章:

python - 使用输入设置所有字符的列表。使用列表长度检查所有字符并将其替换为相应的值

python - 在 Pandas 中,我如何展平一组行

python - 如何将子流程的结果放入变量中

python - Python:可以在线程中调用subprocess.Popen吗?

python - 如何使用 Python 子进程执行长 bash 序列

python套接字如何不对连接请求进行排队

python - 如何在数据帧上执行 pd.get_dummies(),同时保留 NA 值而不是创建 NA 列?

python - 系统找不到用ffmpeg指定的文件

python - 使用多进程和子进程在 python 中运行并行 Stata do 文件

python - 我需要如何将 sql 插入、通用值、哪些列和值可变化?