Python插入ASCII转义字符时出现双倍空格如何解决?
问题根因
处理带方括号的内容时,ANSI转义序列被作为独立元素插入到了formated_string列表中,调用" ".join()拼接列表时会在每两个相邻元素之间插入空格,导致转义序列和前后的单词之间额外生成了空格,最终出现双倍空格的现象。
修复方法
不要将ANSI转义序列作为单独的列表元素插入,直接将转义序列拼接在对应单词的前后即可,修改对应代码段如下:
# Check for name and format it string = content.split(" ") formated_string = [] for word in string: if word.startswith("["): word = "\033[96m" + word if word.endswith("]"): word = word + self.start formated_string.append(word) self.content = " ".join(formated_string)
颜色不显示问题说明
- Linux、macOS终端默认支持ANSI转义序列,确认终端没有关闭颜色显示即可正常生效
- Windows系统可引入
colorama库并执行colorama.init()开启虚拟终端特性,即可正常显示颜色效果
内容的提问来源于stack exchange,提问作者Klak031
相关产品推荐
相关产品推荐

