page contents

Python 库手册:textwarp 文本自动换行模块!

textwrap 是 Python 标准库中的一个实用模块,专门用于将文本按指定宽度进行换行(折行)或缩进,适用于命令行输出、美化打印文本、自动生成 Markdown、HTML 或报告格式内容等场景。

attachments-2025-07-RTo5Sb516879a120c0a7d.jpgtextwrap 是 Python 标准库中的一个实用模块,专门用于将文本按指定宽度进行换行(折行)或缩进,适用于命令行输出、美化打印文本、自动生成 Markdown、HTML 或报告格式内容等场景。

常见应用场景:

(1)自动将一段长文本格式化为每行固定宽度。

(2)添加统一的缩进,用于代码或段落排版。

(3)去除文本中的多余缩进(常用于文档处理)。

(4)处理输出到终端的帮助信息、说明文字等。

核心概念

1、折行(wrap)

将长文本按指定宽度分行。

2、填充(fill)

将折行后的多行文本组合为一个字符串(通常用于打印)。

3、缩进(indent/dedent)

增加或移除文本的统一缩进。

4、占位符替换(shorten)

将超长文本截断为摘要,并用占位符(如 ...)结尾。

应用举例

例 1:基本文本折行

import textwrap

text = "Python 是一门优雅而强大的编程语言,广泛应用于数据分析、自动化、人工智能等领域。"wrapped = textwrap.wrap(text, width=20)print(wrapped)# 输出:# ['Python 是一门优雅而强大', '的编程语言,广泛应用', '于数据分析、自动化、', '人工智能等领域。']例 2:填充文本(常用于终端输出)

import textwrap

text = "Python supports multiple programming paradigms and is used in many areas."print(textwrap.fill(text, width=30))例 3:缩进

import textwrap

text = "这是第一行。\n这是第二行。"print(textwrap.indent(text, prefix=">> "))例 4:去除多余缩进

import textwrap

text = """    第一级缩进        第二级缩进"""print(textwrap.dedent(text))例 5:缩略摘要

import textwrap

text = "Python 是一个极其流行且强大的编程语言,适合初学者和专家。"print(textwrap.shorten(text, width=30, placeholder="..."))说明:

上述代码运行结果是:Python...。

textwrap.shorten() 的内部机制是按空格切词(英文中的单词),然后在不超过指定 width 的前提下截断,并附加 placeholder(如 ...)。但如果输入字符串中一开始就有一个长单词(或连续无空格的文本),它会整体被替换为 ...。

中文分词替代代码:

text = "Python 是一个极其流行且强大的编程语言,适合初学者和专家。"short_text = text[:13] + "..."print(short_text)

常用函数速览

textwrap.wrap(text, width=70, **kwargs)

将字符串折行为多个长度不超过 width 的子串列表。

参数:

text:要格式化的文本

width:每行最大宽度(默认 70)

可选参数包括 initial_indent(首行缩进)、subsequent_indent(其余行缩进)等。

返回:字符串列表(每行为一个元素)

textwrap.fill(text, width=70, **kwargs)

将字符串折行后返回一个合并的字符串(每行通过换行符连接)。

参数:同上

返回:格式化后的多行字符串

textwrap.shorten(text, width, placeholder="...")

将单行文本缩略为摘要(不会折行)。

参数:

text:原始文本

width:允许的最大宽度

placeholder:缩略结尾标记(默认 '...')

返回:截断后的摘要字符串

注意:仅适用于单行文本,且会自动去除多余空格。

textwrap.indent(text, prefix, predicate=None)

为每一行加上统一前缀(常用于段落缩进)。

参数:

text:多行文本

prefix:要添加的前缀字符串

predicate:函数,返回 True 表示该行添加前缀(默认所有行都添加)

返回:添加前缀后的多行字符串

textwrap.dedent(text)

去除所有行中共同的最小缩进(空格或 tab)前缀。

参数:

text :多行字符串

返回:去除缩进后的新字符串

补充说明

textwrap 是一个专注于“文本排版美化”的标准库,功能虽简单却非常实用。它特别适合用于命令行程序的输出格式化、日志系统的对齐、文档生成脚本、以及代码注释美化等各种需要处理“人类可读文本”的场景。

如果你需要在终端或脚本中输出优雅的文本格式,textwrap 是非常值得掌握的工具。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2025-07-18 09:19
  • 阅读 ( 31 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

2172 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2172 文章
  3. Pack 1335 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章