textwrap模块用于格式化文本,提供自动换行、缩进、填充和截断功能。wrap()返回指定宽度的行列表,fill()返回换行拼接的字符串,initial_indent和subsequent_indent可控制首行及后续行缩进,dedent()移除多行字符串共有的前导空白,shorten()在空格处截断文本并添加省略号,适用于命令行工具和文档生成,提升文本可读性。
Python中的textwrap模块用于格式化文本段落,使其更易阅读,特别是在处理长字符串时。它能自动换行、缩进、填充和截断文本,非常适合命令行工具或文档生成场景。
textwrap.wrap() 将一段文本拆分为适合指定宽度的行列表,每行不超过设定字符数。
textwrap.fill() 功能类似,但直接返回拼接好的字符串,而不是列表。
示例:
textwrap.wrap(text, width=40) 返回一个列表,每行最多40个字符textwrap.fill(text, width=40) 返回换行符连接的字符串你可以为段落添加首行缩进或多行缩进,常用于生成报告或引用文本。
initial_indent 设置第一行的前缀(如空格或符号)subsequent_indent 设置后续行的前缀例如在打印日志时让内容对齐:
print(textwrap.fill(text, width=50, initial_indent=" ", subsequent_indent=" "))textwrap.dedent() 用于移除多行字符串中每一行共有的前导空白,特别适合处理三重引号包裹的文本。
常见于函数文档或模板字符串中保持代码缩进美观的同时不保留多余空格。
doc = """\ This line starts with spaces. So does t
his one.
"""
print(textwrap.dedent(doc))
当你需要将文本压缩到固定长度并加上省略号,可以用 shorten()。
width 参数,超出部分会被替换为 ...
例如:
textwrap.shorten("This is a very long text", width=15) # 输出: "This is a..."基本上就这些。合理使用 textwrap 能让你的文本输出更整洁,尤其在终端界面中效果明显。不复杂但容易忽略。