Python之textwrap模块的使用
textwrap模块的作用
格式化文本段落,需要美观打印的情况下,可以使用textwrap模块格式化要输出的文本。它提供了很多文本编辑器和字处理器中都有段落自动换行或填充特性。
1、演示的数据
sample_text = ''' The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors. '''
2、填充段落
import textwrap from textwrap_example import sample_text print(textwrap.fill(sample_text, width=50))
运行效果
The textwrap module can be used to format text for output in situations where pretty- printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors.
3、去除现有的缩进
import textwrap from textwrap_example import sample_text dedented_text = textwrap.dedent(sample_text) print('Dedented:') print(dedented_text)
运行效果
Dedented: The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors.
4、结合dedent和fill
import textwrap from textwrap_example import sample_text dedented_text = textwrap.dedent(sample_text).strip() for width in [45, 60]: print('{} Columns:\n'.format(width)) print(textwrap.fill(dedented_text, width=width)) print()
运行效果
45 Columns: The textwrap module can be used to format text for output in situations where pretty- printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors. 60 Columns: The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors.
5、使用缩进块,用>做为每一行的前缀
import textwrap from textwrap_example import sample_text dedented_text = textwrap.dedent(sample_text) wrapped = textwrap.fill(dedented_text, width=50) wrapped += '\n\nSecond paragraph after a blank line.' final = textwrap.indent(wrapped, '> ') print('Quoted block:\n') print(final)
运行效果
Quoted block: > The textwrap module can be used to format text > for output in situations where pretty-printing is > desired. It offers programmatic functionality > similar to the paragraph wrapping or filling > features found in many text editors. > Second paragraph after a blank line.
6、自定义增加前缀
import textwrap from textwrap_example import sample_text def should_indent(line): print('Indent {!r}?'.format(line)) return len(line.strip()) % 2 == 0 dedented_text = textwrap.dedent(sample_text) wrapped = textwrap.fill(dedented_text, width=50) final = textwrap.indent(wrapped, 'EVEN ', predicate=should_indent) print('\nQuoted block:\n') print(final)
运行效果
Indent ' The textwrap module can be used to format text\n'? Indent 'for output in situations where pretty-printing is\n'? Indent 'desired. It offers programmatic functionality\n'? Indent 'similar to the paragraph wrapping or filling\n'? Indent 'features found in many text editors.'? Quoted block: EVEN The textwrap module can be used to format text for output in situations where pretty-printing is EVEN desired. It offers programmatic functionality EVEN similar to the paragraph wrapping or filling EVEN features found in many text editors.
7、悬挂缩进
import textwrap from textwrap_example import sample_text dedented_text = textwrap.dedent(sample_text).strip() print(textwrap.fill(dedented_text, initial_indent='', subsequent_indent=' ' * 4, width=50, ))
运行效果
The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors.
8、截断长文本
import textwrap from textwrap_example import sample_text dedented_text = textwrap.dedent(sample_text) original = textwrap.fill(dedented_text, width=50) print('Original:\n') print(original) shortened = textwrap.shorten(original, 100) shortened_wrapped = textwrap.fill(shortened, width=50) print('\nShortened:\n') print(shortened_wrapped)
运行效果
Original: The textwrap module can be used to format text for output in situations where pretty-printing is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in many text editors. Shortened: The textwrap module can be used to format text for output in situations where pretty-printing [...]