Python连接子进程

2024-05-16 06:45:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python执行shell命令。它工作得很好,但是当我尝试执行多个命令时,它在不同的进程中执行。 例如:

1. set NAME=XYZ
2. calabash-android run myApp.apk

我使用以下代码执行这两个命令(命令被分配给变量bash_cmd):

^{pr2}$

因为每次都会创建不同的进程,所以我无法访问在上一个命令中设置的名称。我可以写一个批处理文件,但是变量名的值还是动态变化的。我希望这两个命令在同一个进程中执行。在

有没有一种方法可以在python中批处理这些命令,或者连接子进程。请帮忙!!在


Tags: runname命令cmdbash进程shellmyapp
2条回答

每个subprocess.Popen创建一个新进程。如果要在同一个shell中执行多个命令,则可以一次传递所有命令:

from subprocess import check_call

check_call("\n".join(shell_commands), shell=True)

您也可以启动一个shell进程,并通过其stdin逐个向它提供命令:

^{pr2}$

在特定情况下,可以将修改后的环境直接传递给子流程:

import os
from subprocess import check_call

env = os.environ.copy()
env['NAME'] = 'XYZ'
check_call(["calabash-android", "run", "myApp.apk"], env=env)

您可以一次性完成此操作,因此:

  1. NAME=XYZ葫芦安卓跑我的应用程序.apk在

相关问题 更多 >