【问题标题】:Python colorama not working with input?Python colorama 不能使用输入?
【发布时间】:2015-09-30 17:48:50
【问题描述】:

今天终于让 colorama 工作了,它在打印字符串时效果很好,但是当我尝试将 colorama 用于输入时,我遇到了每个人似乎都会遇到的常见错误。

这是我的代码:

launch = input(Fore.GREEN + "Launch attack?(Y/N): ")

输出截图:

【问题讨论】:

  • 您使用的是什么操作系统和 Python 实现?
  • 你记得先给init打电话吗?
  • 对我自己的评论的回应:不,我在 3.X 中也遇到了这个问题,即使我这样做 init()。不过在 2.7 中运行良好。
  • 使用 Windows 10 64 位 Python 3.5.0
  • 是的,我调用了 init,其中没有任何内容。

标签: python-3.x colorama


【解决方案1】:

我也遇到过同样的问题(Python 3.5.4),如果其他人看到这个问题不太明显,您可以随时依靠在以前只有一个输入调用:

print(Fore.GREEN + "Launch attack?(Y/N): ", end='')
launch = input()

这应该会产生与您的问题完全相同的输出,没有额外的空白行,并且代码着色工作而无需导入任何其他内容。

(小?)缺点是您最终会得到两行代码,而之前只有一行。

【讨论】:

    【解决方案2】:

    为了摆脱这个问题在代码的开头添加

    import os
    
    os.system('cls')
    

    这将清除屏幕,从而清除所有阻碍输入颜色的外部因素。 这工作100%您只需要在程序启动时执行一次[或在第一次使用 colorama 输入之前],然后使用 colorama 以任何你想要的创意方式。

    我希望这将帮助所有试图使他们的代码更加丰富多彩的创造性思维

    【讨论】:

      【解决方案3】:

      在我的系统上,input() 可以使用您添加的颜色如果

      import sphinx.quickstart
      

      到你的模块。

      所以这里是完整的代码。

      from colorama import Fore
      import colorama
      import sphinx.quickstart
      colorama.init()
      launch = input(Fore.GREEN + "Launch attack? (Y/N): ")
      

      (这就引出了两个问题:

      1. 为什么它一开始就不起作用?
      2. 真正的原因是什么? – 有人可能想深入研究 sphinx 源代码。)

      注意如果您通过 Git Bash 中的 winpty 运行 python,请设置 convert。

      colorama.init(convert=True)
      

      否则,您无法使用当前版本获得颜色。

      【讨论】:

      • 我希望能解决这个问题。我现在真的很想将它用于脚本。导入 sphinx.quickstart 有效,但它为我编译的 exe Python 脚本增加了 18 兆字节。
      【解决方案4】:

      只需确保 init() 中的“自动重置”

      init(autoreset=True)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多