【问题标题】:Preserve colored output from python os.popen()保留 python os.popen() 的彩色输出
【发布时间】:2012-10-29 06:28:33
【问题描述】:

我正在使用 Python 使用 msbuild.exe 从给定目录构建多个 VS 解决方案。我只想要特定的输出,但为了节省工作,解释结果的最佳方法是使用原始 ANSI 编码。

例子:

import os
output = os.popen("MSBuild VSTests.sln").read()
print output

这会打印输出,但没有颜色。有什么办法可以保存吗?

【问题讨论】:

  • 欢迎来到 SO!我怀疑您是否要保留转义序列,因为如果他们使用 ansi-escape 序列,它们很可能会使您的输出更加难以阅读。更好的方法是过滤内容。为我们提供一点样本输出永远不会出错。

标签: python colors stdout popen


【解决方案1】:

据我所知,你不能。颜色是控制台的属性,而不是输出文本本身的属性。这不像在 Linux 中,您在设置颜色的文本中获取转义字符并将其读回控制台保留颜色。

这样做的另一个副作用是您不能为 STDOUTSTDERR 设置单独的颜色,如以下 SO 问题所示:

Setting stdout/stderr text color in Windows

【讨论】:

    猜你喜欢
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多