python - 脚本通过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 错误,因此我想知道是否有任何其他方法可以捕获它。
解决方案
问题是 Python 中没有发生错误。该错误发生在 bash 中,此时该进程作为单独的进程运行。看看 Python 模块“子进程”。它的设置比 os.system() 更复杂,但它允许您捕获 stdin 和 stdout 并在进程终止后处理它们。
推荐阅读
- angular - 如何使用 Angular 7 前端和 Laravel 后端在 Firebase 上存储图像?
- sql-server - SQL Server 将硬编码日期确定为更大的日期?
- yocto - polkit-0.113-r0 do_configure:功能失败:do_configure
- javascript - 在数据表中使用表单时,Ajax 调用返回空模型?
- python - Matplotlib 图中的第二行不准确/在整个网格中运行
- r - 如何修复 nls 模型上的“未使用的参数”错误
- mysql - 如何从数据库中选择分配给他们的书籍数量的所有作者?
- python-3.x - 使用 pyodbc 连接到本地 sql 服务器时出现登录超时过期错误
- javascript - vuejs中如何防止渲染页面跳转?
- c - 我认为指针有问题