文本包装,但精通ANSI颜色和样式
ansiwrap的Python项目详细描述
ansiwrap像标准的textwrap模块那样包装文本。 但它也正确地包装了包含ANSI控件的文本 使文本着色或设置文本样式的序列。
其中textwrap被那些控制代码的原始字符串长度所愚弄, ansiwrap不是;它知道这些代码对颜色的影响有多大 以及显示样式,它们没有逻辑长度。
api镜像wrap、fill和shortentextwrap的函数。例如:
from __future__ import print_function from colors import * # ansicolors on PyPI from ansiwrap import * s = ' '.join([red('this string'), blue('is going on a bit long'), green('and may need to be'), color('shortened a bit', fg='purple')]) print('-- original string --') print(s) print('-- now filled --') print(fill(s, 20)) print('-- now shortened / truncated --') print(shorten(s, 20, placeholder='...'))
它还导出其他几个功能:
- ansilen(给出字符串的有效长度,忽略ANSI控制代码)
- ansi_terminate_lines(通过字符串/行的列表传播控制代码 并终止每一行。)
- strip_color(从字符串中删除ANSI控制代码)
另请参见所附的demo.py。