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

如何美化Python subprocess模块执行命令后的输出?

解决subprocess执行ls输出美化问题

你可以通过以下几步处理输出,让它和直接在Linux终端执行ls的格式一致:

  1. 解码字节串:subprocess返回的输出是字节类型(b'...'),先用decode()转成普通字符串,Linux下默认用utf-8编码即可。
  2. 调整格式:先去除字符串首尾的换行和空白字符,再把内容里的换行符替换为空格,或者分割成文件名列表后用空格拼接,保证和终端ls的空格分隔格式一致。

修改后的代码示例:

import subprocess

proc = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
output = proc.stdout.read().decode().strip()  # 解码并清除首尾空白
formatted_output = '  '.join(output.split('\n'))
print(formatted_output)

执行后输出会变成:

file.txt  main.py  source  test-page

如果想保留终端里ls的自动多列排版(文件较多时自动分栏),可以直接让subprocess把输出直接打印到终端,无需捕获stdout:

import subprocess

subprocess.run(['ls'])  # 直接执行,输出和终端原生ls完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:40:43