代码之家  ›  专栏  ›  技术社区  ›  Cut7er

如何对input()-函数中显示的文本应用颜色/格式(类似于print语句格式)?

  •  6
  • Cut7er  · 技术社区  · 6 年前

    我也很乐意将格式应用到 input() -方法,但我还没有找到一个方法如何做到这一点。这是测试代码。。。

    from colorama import init
    init(autoreset=True)
    
    RED = "\x1b[1;31;40m"
    
    print(f"{RED}This text is red\n")
    
    not_red = input(f"{RED}Insert some random stuff: ")
    

    enter image description here

    而在我的Spyder IDE控制台中,它具有相反的效果:

    enter image description here

    有人能向我解释一下在不同的控制台上显示的行为吗? 有没有什么方法来格式化 输入() -Windows命令控制台中的文本?这是我的程序正常运行的地方,我想让它更漂亮:-)

    提前谢谢!

    1 回复  |  直到 6 年前
        1
  •  3
  •   Davis Herring    6 年前

    colorama 工作人员 replacing sys.stdout and sys.stderr 对于解释ISO6429序列的版本,进行适当的Win32调用来实现它们,并将其余字符发送到基础流。这就解释了你的观察结果: input sys.stdout.write ,并且Spyder自己解释序列,但不受Win32调用的影响。

    唯一合理的解决办法似乎是使用 输入 没有提示;你不需要做更多的事 print 没有换行符的提示 , 在Python2或 end=""

    推荐文章