Python 印刷色彩给人一种“感觉”;[31m”前缀

Python 印刷色彩给人一种“感觉”;[31m”前缀,python,colorama,Python,Colorama,我正在尝试使用Colorama打印彩色文本,我尝试了以下方法: 从colorama导入前、后、样式 打印(Fore.RED+一些红色文本) 打印(Back.GREEN+'和绿色背景') 打印(Style.DIM+'和DIM文本') 打印(样式。全部重置) 打印(“立即恢复正常”) 但它返回的是: [31M一些红色文本 [42M,背景为绿色 [2暗文本中的和 [0m 现在恢复正常 当我想要的时候: 第一行是红色的 第二个是绿色背景 第三个是模糊文本 然后一切恢复正常 我正在Windows1

我正在尝试使用Colorama打印彩色文本,我尝试了以下方法:

从colorama导入前、后、样式
打印(Fore.RED+一些红色文本)
打印(Back.GREEN+'和绿色背景')
打印(Style.DIM+'和DIM文本')
打印(样式。全部重置)
打印(“立即恢复正常”)
但它返回的是:

[31M一些红色文本
[42M,背景为绿色
[2暗文本中的和
[0m
现在恢复正常
当我想要的时候:

  • 第一行是红色的
  • 第二个是绿色背景
  • 第三个是模糊文本
  • 然后一切恢复正常
我正在Windows10计算机上使用Python3.7.3,以及从pip下载的最新colorama

编辑:我的问题被标记为重复问题,已经发布了6个,所以如果我使用它们,会发生什么:

  • hrbdg的回答指示运行此代码:
  • 从colorama导入初始、前、后、样式
    init(convert=True)
    打印(Fore.RED+一些红色文本)
    
    对我来说,它返回一些标准蓝色的红色文本

  • 根据肖恩·林奇(Sean Lynch)的说法,我需要对其进行修补。因此我下载Ansicon并按照他/她的指示进行操作。然后我打印:
  • 从colorama导入前、后、样式
    打印(Fore.RED+一些红色文本)
    打印(Back.GREEN+'和绿色背景')
    打印(Style.DIM+'和DIM文本')
    打印(样式。全部重置)
    打印(“立即恢复正常”)
    
    我再次得到:

    [31M一些红色文本
    [42M,背景为绿色
    [2暗文本中的和
    [0m
    现在恢复正常
    
  • babrar的回答指示运行此代码:
  • 从colorama导入初始化
    从termcolor导入彩色
    init()
    打印(彩色(“你好,世界!”、“绿色”、“红色”)
    
    对我来说,它返回蓝色的
    [41m[32mHello,World![0m

  • 用户sorin建议使用tendo.colorer,因为我在Windows上没有ANSI。因此我通过pip下载tendo。据他/她说:“只需在编写代码之前导入即可解决问题”。因此我运行以下代码:
  • 从colorama导入前、后、样式
    来自tendo进口着色剂
    打印(Fore.RED+一些红色文本)
    打印(Back.GREEN+'和绿色背景')
    打印(Style.DIM+'和DIM文本')
    打印(样式。全部重置)
    打印(“立即恢复正常”)
    
    但这返回了…令人惊讶的是,我的文本是红色的,希望我的电脑现在没有病毒

  • 用户kamzur说,问题的原始发帖人Mike只需要在一行中使用一个导入,而不是在三行中使用。这是没有帮助的

  • 用户tcp2008建议运行:

  • import colorama
    colorama.init()
    打印colorama.Fore.GREEN+“嘿,我是绿色的!”
    

    它返回
    [32m嘿,我是格林!

    一个新用户写了如此详细的非重复解释,而不是经典的“我尝试了其他答案,但没有成功”。继续努力@Dux!最重要的部分仍然缺失:如何运行代码?问题是,它应该打印类似
    [31m
    ,但是您运行代码的终端仿真器应该将其理解为ANSI转义序列。您的显然不理解,因此问题可能在于此。我看到您提到Windows,它是
    cmd.exe
    还是其他仿真器?红色文本被选择为“[31m”,因此如果您看到“[31m”它输出正确,但Windows没有正确解释它。您可以查看一下,因为您提到了标准蓝色,我假设您使用的是IDLE?如果是这样,colorama在IDLE中不工作,则它仅在解释器中可用(请参阅我回答中的)我投票决定关闭它。虽然它是可复制的,但它是预期的输出,这取决于所使用的IDE。它只取决于IDE是否正确解释转义字符。例如,它在Jupyter实验室单元格中正确打印彩色或高亮显示的文本。新用户写下如此详细的非重复解释给我留下了深刻印象除了经典的“我尝试了其他答案,但没有成功”。继续努力@Dux!最重要的部分仍然缺失:如何运行代码?问题是,它应该打印类似
    [31m
    ,但是您运行代码的终端仿真器应该将其理解为ANSI转义序列。您的显然不理解,因此问题可能在于此。我看到您提到Windows,它是
    cmd.exe
    还是其他仿真器?红色文本被选择为“[31m”,因此如果您看到“[31m”它输出正确,但Windows没有正确解释它。您可以查看一下,因为您提到了标准蓝色,我假设您使用的是IDLE?如果是这样,colorama在IDLE中不工作,则它仅在解释器中可用(请参阅我回答中的)我投票决定关闭它。虽然它是可复制的,但它是预期的输出,这取决于所使用的IDE。它只取决于IDE是否正确解释转义字符。例如,它在Jupyter实验室单元格中正确打印彩色或高亮显示的文本。