如何在Python中捕获shell命令的输出?
我需要做的事情是这样的:在一个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 转义序列。