📜  Textwrap – Python中的文本换行和填充(1)

📅  最后修改于: 2023-12-03 15:20:37.160000             🧑  作者: Mango

Textwrap – Python中的文本换行和填充

textwrap是Python的一个标准库,用于对文本进行换行和填充操作。它处理所有类型的文本,例如单词、字符串、段落、文章等等。textwrap的主要目的是使文本更易于阅读,因此可以将其用于各种用途,例如打印输出、字符串包装、电子邮件等等。

安装

textwrap是Python的标准库之一,不需要额外安装。

基本用法

以下是一个简单的包装示例,将给定字符串包装到指定列宽中:

import textwrap

text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mattis lorem sit amet urna laoreet, ac tincidunt turpis faucibus. Donec fermentum, erat in congue cursus, quam justo interdum quam, vel lobortis urna lacus a nibh.'
wrapped_text = textwrap.wrap(text, width=30)

print('\n'.join(wrapped_text))

输出:

Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Sed mattis lorem sit amet urna
laoreet, ac tincidunt turpis
faucibus. Donec fermentum, erat
in congue cursus, quam justo
interdum quam, vel lobortis urna
lacus a nibh.

在上面的示例中,textwrap.wrap()是一个功能强大的函数,它将给定的字符串包装到给定的列宽中。通过指定width参数控制单行字符串的最大宽度。wrap()函数的输出是一个字符串列表,向计算的换行符添加换行符。

填充文本

textwrap还提供了一些函数,可以用于在给定的文本或字符串上进行填充操作。以下是一个简单的示例,使用textwrap.fill()实现左对齐/右对齐/中间对齐的字符串:

import textwrap

text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mattis lorem sit amet urna laoreet, ac tincidunt turpis faucibus. Donec fermentum, erat in congue cursus, quam justo interdum quam, vel lobortis urna lacus a nibh.'

# 左对齐
print(textwrap.fill(text, width=30, initial_indent='', subsequent_indent=''))

# 右对齐
print(textwrap.fill(text, width=30, initial_indent='', subsequent_indent='', align='right'))

# 中间对齐
print(textwrap.fill(text, width=30, initial_indent='', subsequent_indent='', align='center'))

输出:

Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Sed mattis lorem sit amet
urna laoreet, ac tincidunt
turpis faucibus. Donec
fermentum, erat in congue
cursus, quam justo interdum
quam, vel lobortis urna lacus
a nibh.

Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Sed mattis lorem sit amet
urna laoreet, ac tincidunt
turpis faucibus. Donec
fermentum, erat in congue
cursus, quam justo interdum
quam, vel lobortis urna lacus
a nibh.

 Lorem ipsum dolor sit amet,
 consectetur adipiscing elit.
 Sed mattis lorem sit amet
 urna laoreet, ac tincidunt
 turpis faucibus. Donec
 fermentum, erat in congue
 cursus, quam justo interdum
 quam, vel lobortis urna lacus
 a nibh.

在上面的示例中,我们使用了textwrap.fill()函数并指定width参数来控制每行的字符数。initial_indentsubsequent_indent是用于指定每个段落的缩进,以使更好的格式化输出。align参数可用于指定距离左边和右边之间的文本对齐方式(默认为左对齐)。

参考资料