Cut*_*7er 6 python formatting string-formatting windows-console colorama
我有一个小型游戏应用程序,它是从Windows控制台(cmd.exe)启动的.我能够使用ANSI转义序列以任何所需的方式格式化文本.
我也很乐意将格式应用于input()
-method中的文本,但我还没有找到一种方法.这是测试代码......
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: ")
Run Code Online (Sandbox Code Playgroud)
在我的Windows控制台中,您将看到ANSI序列在输入语句中显示为一个简单的字符串:
而在我的Spyder IDE控制台中,它具有相反的效果:
任何人都可以向我解释不同控制台中显示的行为吗?有没有办法input()
在Windows cmd控制台中格式化-text?这是我的程序正常运行的地方,我想让它更漂亮:-)
提前致谢!
colorama
它的工作原理是用解释 ISO 6429 序列的版本替换sys.stdout
和sys.stderr
,进行适当的 Win32 调用来实现它们,并将其余字符发送到底层流。这解释了您的观察结果:input
does\xe2\x80\x99t 使用 Python 级别sys.stdout.write
,并且 Spyder 解释序列本身,但不受 Win32 调用的影响。
input
唯一合理的解决办法似乎是在没有提示的情况下使用;你不应该\xe2\x80\x99 需要做任何比没有换行符的提示( Python 2 或Python 3 中的print
尾随)更多的事情。,
end=""
归档时间: |
|
查看次数: |
144 次 |
最近记录: |