You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入式Linux下Python传感器工具输出无法重定向至文件的求助

解决Python工具输出重定向无效的问题

核心原因

你的Python工具大概率把输出写到了**标准错误流(stderr)**而非标准输出流(stdout)。bash的>默认仅重定向stdout,而stderr默认指向终端,所以终端能看到输出,但重定向生成的文件为空。

解决方法

1. 同时重定向stdout和stderr到文件

执行以下命令,将两种输出流都写入目标文件:

/usr/bin/ccube-sensors voltage -m all > test.log 2>&1

或者使用bash简化写法:

/usr/bin/ccube-sensors voltage -m all &> test.log

2. 验证输出流归属

如果想确认输出到底来自哪个流,可以分别定向测试:

  • 单独捕获stderr内容:
/usr/bin/ccube-sensors voltage -m all 2> stderr.log

打开stderr.log如果能看到电压数据,即可确认输出确实走的是stderr。

3. 修改Python脚本(若有权限)

如果你能修改那3行的Python脚本,可以强制将库的输出转到stdout。假设原脚本如下:

import ccube.apps.ccube_sensors
if __name__ == "__main__":
    ccube.apps.ccube_sensors.main()

修改为:

import sys
import ccube.apps.ccube_sensors
if __name__ == "__main__":
    # 将stderr临时重定向到stdout
    sys.stderr = sys.stdout
    ccube.apps.ccube_sensors.main()

修改后直接用>就能正常重定向输出。

额外说明

嵌入式Linux环境中,不少工具会将状态类输出放到stderr,避免与业务数据输出混淆,但这会导致默认重定向失效。优先使用命令行重定向的方式,无需修改代码更便捷。

内容的提问来源于stack exchange,提问作者BenjiBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:59:50