Python 中的文本换行

Rana Hasnain Khan 2024年2月15日
  1. Python 中的文本换行
  2. 在 Python 中使用 wrap() 方法
  3. 在 Python 中使用 fill() 方法
Python 中的文本换行

我们将介绍如何在 python 中包装文本。Python 有一个内置模块 textwrap,可以帮助我们实现此功能。

本教程将通过使用 textwrap 模块的不同示例。

Python 中的文本换行

许多情况需要我们对字符串进行包装以提高可见性、可读性或其他原因。我们可能需要为特定的屏幕尺寸换行文本,这样文本就不会溢出屏幕的大小。

如果我们根据每行的字符数来包装文本,它可能会破坏单词并使其有时无法阅读并降低用户体验。textwrap 模块提供了不同的方法来包装长文本。

在 Python 中使用 wrap() 方法

一种常用的方法是 wrap(content, width=length)。内容是我们需要换行的文本,宽度表示每行的字符数。

默认字符数为 70。包装文本后,我们将使用 join() 方法将行连接成单个字符串。

示例代码:

# python
import textwrap

content = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."

wrappedText = textwrap.wrap(content)

print("\n".join(wrappedText))

输出:

python 简单示例中的文本换行

我们的文本很容易包装,而不会破坏上面示例中的单词。

现在让我们来看另一个示例,在该示例中我们将讨论如果我们只想显示字符串或文本段落中的特定行数该怎么做。

我们将打印相同的文本段落,但我们将限制每行的字符数以增加行数,并将仅显示 10 行并放置一个占位符来代替剩余的行,如下所示。

示例代码:

# python
import textwrap

content = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."

# Without Limiting Number of Lines
wrappedText = textwrap.wrap(content, width=40)

print("Number of Lines : {}\n".format(len(wrappedText)))
print("\n".join(wrappedText))

# With Limiting Number of Lines
wrappedText = textwrap.wrap(
    content, width=40, max_lines=10, placeholder="more content....."
)

print("Number of Lines : {}\n".format(len(wrappedText)))
print("\n".join(wrappedText))

不限制行数的输出:

python 示例中的文本换行,不限制行数

用于限制行数的输出:

python 示例中的文本换行,行数有限

我们不仅可以限制每行的字符数,还可以限制要显示的行数,我们还可以放置一个占位符来代替剩余的行。

在 Python 中使用 fill() 方法

wrap() 方法返回一个行列表,而不是返回带有换行文本的整个段落。

但是为了这个目的,Python 提供了另一种称为 fill() 的方法,它的功能与 wrap() 方法相同,但返回一个组合每一行的单个字符串,而不是返回一个行列表。

示例代码:

# python
import textwrap

content = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."

wrappedText = textwrap.fill(content)

print(wrappedText)
print("\n")

wrappedText = textwrap.fill(content, width=40)

print("\n")
print(wrappedText)

wrappedText = textwrap.fill(
    content, width=40, max_lines=12, placeholder=" [..More Content]"
)

print("\n")
print(wrappedText)

输出:

python 填充方法示例中的文本换行

python 填充方法中的文本换行示例 2

python 填充方法中的文本换行示例 3

本教程讨论了 textwrap 模块中的 wrap() 方法及其参数。我们还讨论了 fill() 方法及其参数。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn