python - python中的连接子进程

标签 python subprocess

我是python的新手,并且有一些与子进程相关的疑问。我想转到任何目录并在该位置执行某些操作。所以我尝试这样:

q1 = subprocess.Popen('cd ~/Desktop/my_folder', stdout=subprocess.PIPE, shell=True)
(out1, err) = q1.communicate()  

现在当我这样做的时候

q2 = subprocess.Popen('ls', stdin=q1.stdout, stdout=subprocess.PIPE, shell=True)
(out2, err) = q2.communicate()

我看到ls命令已经在我之前的位置执行了,所以这意味着q1进程被杀死了,我只想知道如何在q1进程中执行某些操作。

最佳答案

cd 有点特殊。每个进程都有自己的当前工作目录。因此,当您为 cd ~/Desktop/my_folder 创建子进程时,仅更改该特定子进程的当前目录(更改其目录后立即退出)。

父进程以及任何其他子进程不受影响。

更改目录的最简单方法是使用 os.chdir() .

关于python - python中的连接子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15965382/

相关文章:

python - 如何评估配置文件中的简单数学表达式

python - NLTK:设置代理服务器

Python - Windows - 当 "unrelated"父进程死亡/崩溃时退出子进程

Python子进程通信,顶部显示CPU使用率低

python - 通过 Powershell Invoke-RestMethod 上传分段文件

python - 对于unittest.TestCase子类,run方法执行测试用例时无法获取class属性

javascript - 从 Javascript 脚本 block 中提取变量

python - 将子进程 stderr 重定向到 stdout

python - ffmpeg Python 子进程错误返回非零退出状态 1

python - 无法使用python存储子进程的终端输出