【问题标题】:Colored text in command prompt after "cls" but not before "cls"“cls”之后但不在“cls”之前的命令提示符中的彩色文本
【发布时间】:2019-06-27 13:38:07
【问题描述】:

我有一个 python 程序,我试图在命令提示符下使用 ANSI 代码以彩色文本打印“Hello”。当我正常打印时,它不起作用,它只是打印?和文本,但是当我在清除命令提示符后打印它时效果很好。有人能解释一下这种奇怪的性质吗?

我搜索了这个,但找不到任何关于这种性质的信息。我正在使用 Windows 10

以下代码输出[0;32mHello[0m

print('\x1b[0;32m' + "Hello" + '\033[0m')

而下面的代码以绿色输出 Hello。

os.system("cls")
print('\x1b[0;32m' + "Hello" + '\033[0m')

右图是上面或左图中显示的代码的输出

我的期望是在上述代码中给出 ansii 或彩色文本,但两种情况下的实际输出不同

【问题讨论】:

  • 你用的是哪个python版本?
  • 你能用 sys 做一个测试吗?这是code
  • @EsdrasXavier,我测试了你给我的代码,它给出了与上图相同的输出,我的 python 版本是 3.7.2
  • 好吧,我对此进行了一些研究,看起来这可能是 Windows 问题。您可以做的是使用 colorama,似乎解决了为每个 windows 版本转换 asc 代码的 windows 问题。看看这个link

标签: python windows-10 command-prompt ansi-colors


【解决方案1】:

试试这个:

os.system("")
print('\x1b[0;32m' + "Hello" + '\033[0m')

【讨论】:

  • 代码需要解释,然后才称为答案。
  • 答案,imo。但它往往是一个没有更多解释的没有帮助的答案。您可以轻松添加更多上下文:例如为什么在 OPs 问题中 os.system("")os.system("cls") 有区别?这将如何以及为什么能解决问题?
  • 对不起,我的评论写错了。我在 stackoverflwo 中有足够的“声誉”(至少需要 50 个声誉)来写评论。这就是我在回答部分写评论的原因
猜你喜欢
  • 2019-10-17
  • 2021-12-14
  • 2011-06-04
  • 2023-04-01
  • 1970-01-01
  • 2017-10-11
  • 2021-12-20
  • 2021-04-11
  • 2019-04-12
相关资源
最近更新 更多