Format text paragraphs with textwrap
Sat Jul 21, 2018 · 163 words

Python’s textwrap module is useful for rearranging text, e.g. wrapping and filling lines.

Import the module:

import textwrap

Wrap the text in the string “parallel”, so that all lines are a maximum of x characters long:

# When x = 2
textwrap.wrap("parallel", width=2)
# Output:
# ['pa', 'ra', 'll', 'el']

# When x = 4
textwrap.wrap("parallel", width=4)
# Output:
# ['para', 'llel']

Returns a list of lines (without trailing newlines).

If we would like to include trailing newlines (\n) after a each string of a certain width we can either use the following syntax:

'\n'.join(textwrap.wrap('text', width=2))
# Output:
# 'te\nxt'

Or we can use the fill method implemented in textwrap module:

textwrap.fill("text", width=2)
# Output:
# 'te\nxt'

Collapse and truncate a text to width :

print(textwrap.shorten("Hello world!", width=12))
# Hello world!
print(textwrap.shorten("Hello world!", width=11))
# Hello [...]

The last words are dropped if the text is longer than the width argument. Other useful methods like indent and dedent are available in this module.


back · he thought · he could · so he did · main