控制台彩色文本更改字符串长度



在Windows中, 名为colorama的彩色控制台文本模块会更改颜色,但也会更改字符串长度。

如何避免这种情况?

我的代码:

from colorama import * #Not only colorama
init(convert=True)
my_text = Fore.LIGHTCYAN_EX+"Hello World!"
print(mytext, len(my_text))
#Output: Hello World! 17

所以我想要 12 个长度,但模块增加了 5 个字符。

这是因为为了添加颜色,他们在字符串的开头添加了隐藏字符,告诉显示它的事物使用颜色。您可以通过像这样打印文本来查看文本的实际值:

from colorama import * #Not only colorama
init(convert=True)
my_text = Fore.LIGHTCYAN_EX+"Hello World!"
print(repr(my_text), len(my_text))

这将输出'x1b[96mHello World!' 17

如果你想继续获取文本的长度,也许你最好把它存储在变量中,作为"Hello World!",只在显示它时添加Fore.LIGHTCYAN_EX

最新更新