首页 > 解决方案 > 脚本通过python运行时如何捕获bash错误

问题描述

我正在尝试通过 python 脚本运行bash(或sh)脚本,如下所示:

import os
cmd="/bin/echo {1..200000}"
out=os.system(cmd)

但是,该命令没有运行,我收到以下错误:

/bin/echo: Argument list too long

我希望能够在我的 python 脚本中专门捕获这个错误。try/except在这里不起作用,因为它不是 python 错误,因此我想知道是否有任何其他方法可以捕获它。

标签: pythonbashsh

解决方案


问题是 Python 中没有发生错误。该错误发生在 bash 中,此时该进程作为单独的进程运行。看看 Python 模块“子进程”。它的设置比 os.system() 更复杂,但它允许您捕获 stdin 和 stdout 并在进程终止后处理它们。


推荐阅读