本质上,我需要做的是创建一个打开新终端的函数,在其上执行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] 删除。
我来说两句