如何在Python中捕获shell命令的输出?

0 投票
1 回答
1293 浏览
提问于 2025-04-17 02:41

我需要做的事情是这样的:在一个Python脚本中,运行一个Linux命令,比如 ls --colors=always /,然后读取它的输出。这里面很重要的一点是,我需要这个输出保留所有的ANSI转义序列(也就是颜色之类的),这样我才能把这些序列转换成HTML格式。我听说Python的 pty 模块可以做到这一点,但我在网上找不到有用的例子,而且这个模块的文档也不是很全面。如果有人能指导我如何完成这个任务,我会非常感激。

1 个回答

1
import subprocess as sub

process = sub.Popen("ls --colors=always /", stdout=sub.PIPE, stderr=sub.PIPE)
output, errors = process.communicate()

现在你想要的所有数据应该都在 output 里面,包括那些 ANSI 转义序列。

撰写回答