Python 标准库

textwrap

2022-12-11

textwrap 是 [[Python]] 标准库中用于文本自动换行与填充的模块,适用于格式化段落输出。

textwrap

.fill()

可以指定字符换行。

textwrap.fill(
str,
width=42, # 最大宽度
initial_indent=" ", # 首行缩进
subsequent_indent="" # 非首行缩进(前缀)
)

.dedent()

去除所有行的行首空格。

语法: textwrap.dedent(text)

  • text: 文本
textwrap.dedent(str)

[[Python 工匠]]中提到: 在代码已有缩进层级的情况下,如果不希望插入的多行字符串,不破坏已有代码的缩进视觉风格,除了把这段字符串提取为全局变量之外,用 .dedent() 处理是一个更好的方案。

.indent()

为每一行自动增加缩进或是指定符号,同样也可以使用 fill 中的 subsequent_indent 实现。

textwrap.indent(str, ">")

.shorten()

长文本截断(不支持中文)。

textwrap.shorten(
str,
width=10, # 指定长度后截断
placeholder="..." # 截断占位符,默认值是 [...]
)
# 返回: 'Hello...'

参考