我目前正在尝试通过python在一个新的终端上运行一个shell脚本。到目前为止,它正在运行,我现在的问题是,我还需要那个shell脚本的退出代码。根据成功执行与否,脚本返回不同的退出代码,我需要得到它们,以便我可以继续在python中使用它们。我的代码现在看起来像这样:
process = subprocess.Popen(['gnome-terminal', '-x', './myscript.sh'])
text = process.communicate()[0]
exit_code = process.returncode
print(text, exit_code)
我可能还需要一个等待函数,因为脚本需要几秒钟才能完成执行。有人知道我是怎么做到的吗?
1条答案
按热度按时间n3schb8v1#
正如评论中提到的@tjm3772,subprocess.run可能就是你想要的。
capture_output
和timeout
都是可选的。timeout
以秒为单位。正如您将在文档中看到的,如果需要,还有许多其他选项。run
返回一个CompletedProcess对象,表示一个已经完成的进程,所以不必担心(在Python代码中)shell脚本可能需要多长时间等等(除了可能需要一个timeout
,如上所述,以覆盖脚本挂起/花费太长时间的可能场景)。