Python textwrapモジュールで文字列をきれいに整形:折り返し・切り詰め


 

長い文字列を画面に表示する際や、特定の領域に収まるようにテキストを整形したい場合、Pythonの標準ライブラリ**textwrap**が非常に役立ちます。textwrapは、文字列の折り返し(ワードラッピング)や切り詰め(トランケーション)といった整形処理を簡単に行う機能を提供します。

 

textwrapモジュールとは?

 

textwrapモジュールは、主に段落のようなテキストブロックを整形するために設計されています。指定した幅に合わせてテキストを自動的に改行したり、行頭にインデントを追加したり、逆に文字列を特定の長さに切り詰めたりする機能があります。

 

文字列を折り返す(ラップする)

 

textwrap.wrap()関数は、指定した幅で文字列を改行し、各行を要素とするリストを返します。textwrap.fill()関数は、同じく指定した幅で文字列を改行し、整形された単一の文字列として返します。

 

textwrap.wrap()の使用例

 

Python
 
import textwrap

long_text = "Python's textwrap module provides functions to format paragraphs of text for display. It can wrap single paragraphs and format multiple paragraphs. This example demonstrates wrapping."

# 幅20文字で折り返す
wrapped_lines = textwrap.wrap(long_text, width=20)
for line in wrapped_lines:
    print(line)

"""
出力:
Python's textwrap
module provides
functions to format
paragraphs of text
for display. It can
wrap single
paragraphs and
format multiple
paragraphs. This
example
demonstrates
wrapping.
"""

 

textwrap.fill()の使用例

 

fill()は、wrap()の結果を結合して一つの文字列として返すため、整形後のテキストを直接出力したい場合に便利です。

Python
 
import textwrap

long_text = "Python's textwrap module is very useful for formatting strings to a specific width. It handles line breaks gracefully."

# 幅30文字で折り返し、整形された文字列を取得
filled_text = textwrap.fill(long_text, width=30)
print(filled_text)

"""
出力:
Python's textwrap module
is very useful for
formatting strings to a
specific width. It
handles line breaks
gracefully.
"""

 

文字列を切り詰める

 

textwrapモジュールには、直接的な切り詰め(トランケーション)関数はありませんが、shorten()関数が類似の機能を提供します。これは文字列を指定した長さに縮め、末尾に省略記号を追加します。

 

textwrap.shorten()の使用例

 

Python
 
import textwrap

original_text = "これは非常に長いテキストで、切り詰める必要があります。"

# 最大幅15文字で切り詰める
shortened_text = textwrap.shorten(original_text, width=15, placeholder="...")
print(shortened_text)

# placeholderを変更しない場合
shortened_text_default = textwrap.shorten(original_text, width=15)
print(shortened_text_default)

 

注意点

 

shorten()関数は指定したwidthの中にplaceholderの文字数も含まれます。

textwrapモジュールは、CLIアプリケーションの出力整形、レポート生成、UI表示など、さまざまな場面でテキストの見栄えを向上させるのに役立ちます。

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座