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

如何使用Python subprocess执行tree命令并输出正确结果?

解决Python调用tree命令报错的问题

错误原因

出现FileNotFoundError是因为subprocess.check_output默认不启用shell,此时你传入的整个字符串"tree /home/ubuntu/data"会被当作一个完整的命令名去查找,系统自然找不到这个文件。

解决方案

方案1:拆分命令为参数列表(推荐)

将命令和参数拆分成列表形式传递,这是更安全的方式,避免shell注入风险:

import subprocess

cmd = ["tree", "/home/ubuntu/data"]
# 捕获输出并指定编码为utf-8,直接得到字符串格式结果
returned_output = subprocess.check_output(cmd, encoding="utf-8")
print(returned_output)

方案2:启用shell执行

如果需要保留完整的命令字符串,可以设置shell=True,让shell来解析命令:

import subprocess

cmd = "tree /home/ubuntu/data"
returned_output = subprocess.check_output(cmd, shell=True, encoding="utf-8")
print(returned_output)

额外注意事项

  • 如果运行时依然提示找不到tree命令,需要先安装tree工具:
    • Debian/Ubuntu系系统执行:sudo apt install tree
    • RHEL/CentOS系系统执行:sudo yum install tree

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:22:07