如何打开终端,在终端上执行python脚本,然后等待脚本结束?

佩德罗·卡尔德拉(Pedro Caldeira)

本质上,我需要做的是创建一个打开新终端的函数,在其上执行python脚本,然后等待脚本结束。从我一直在线阅读的内容来看,最好的方法是使用Python库子进程。但是,我发现使用起来非常困难。当我运行以下代码时:

def function():
    cmd = "gnome-terminal; python3 simple_action_client.py"
    subprocess.check_output(cmd, shell=True)
    print("I'm done!")

在终端打开后执行打印,这意味着“ check_output”功能仅等待cmd的第一部分执行。

本质上,我想做的是以下几点:

def function():
    terminal_command = "gnome-terminal"  
    script_command = "python3 script.py"
    subprocess.run(terminal_command, shell = True)
    subprocess.check_output(script_command, shell = True)
    print("I'm done!")

但是,当我执行这样的操作时,脚本不会在新终端上运行,而是希望它在新终端上运行。

这可能吗?感谢您的帮助!

汤加平

您正在链接命令以使用以下命令在本地Shell中运行

def function():
    cmd = "gnome-terminal; python3 simple_action_client.py"
    subprocess.check_output(cmd, shell=True)
    print("I'm done!")

您需要调整cmd行以告知gnome-terminal执行命令

def function():
    cmd = "gnome-terminal --wait -- python3 simple_action_client.py"
    subprocess.check_output(cmd, shell=True)
    print("I'm done!")

注意“-”,而不是“;” 和“ --wait”以等待shell中的命令退出

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在终端上运行Python脚本,然后继续使用终端

打开终端时执行python脚本

在终端内打开终端时执行python脚本

如何编写在终端上执行某些命令的脚本?

在 Mac 终端上运行 Python 脚本

Python脚本打开并写入终端

打开终端窗口并在启动时执行Python脚本

如何让我的python脚本等待,直到我告诉它在终端中继续执行?

在打开的终端上运行从鹦鹉螺启动的脚本

如何从 Python 在终端上执行多个命令

如何在保持打开的 gnome 终端窗口中执行用 Python 编写的 Nautilus 脚本?

Python 脚本在使用 VS 代码打开时找不到文件,但在终端上运行正常

如何从终端运行python脚本?

在python中打开终端并运行python脚本

如何通过Python脚本在终端中执行命令?

如何:每小时执行终端命令的 Python 脚本?

运行shell脚本时如何打开终端?

打开终端时运行 Python 脚本(xterm)

如何从终端打开终端并运行程序(脚本)?

如何通过Shell脚本在终端上显示实时结果?

如何在不使用python3的情况下在终端上运行python脚本?

终端中的Python脚本执行命令

有没有办法在执行下一个命令之前等待(在 bash 脚本中)python 程序(在新终端中启动)结束?

脚本在终端上运行,但不像 cron

生成终端窗口的脚本突然等待每个窗口关闭,然后再打开下一个窗口

打开新的终端选项卡并执行脚本

bash-Shell脚本打开多个终端并执行不同的命令

如何编写一个Shell脚本来打开四个终端并在每个终端中执行命令?

从终端运行python脚本