textwrap 是 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 是非常值得掌握的工具。
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.