The textwrap module in Python offers a suite of functions for formatting and manipulating text. It helps you control line breaks, indentation, and text width, making your output clean, readable, and professional. Whether you’re generating reports, writing documentation, or just want to present text more effectively, this guide will show you how to harness the power of textwrap
.
1. Why Use textwrap
? Tidy Up Your Text Output
- Line Wrapping: Break long lines of text into multiple lines that fit within a desired width.
- Indentation Control: Add or remove indents to structure your text.
- Text Shortening: Abbreviate long text with placeholders while preserving meaning.
2. Text Filling: Controlling Line Width with fill()
The fill()
function wraps text to fit within a specified width:
import textwrap
website_text = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed non risus. Suspendisse lectus tortor, dignissim sit amet,
adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam.
"""
print(textwrap.fill(website_text, width=50))
This will wrap the text so that no line exceeds 50 characters.
3. Dedenting Text: Removing Extraneous Indentation
The dedent()
function strips out common leading whitespace from all lines:
dedented_text = textwrap.dedent(website_text).strip()
print(dedented_text)
This ensures your text isn’t unnecessarily indented.
4. Shortening Text: Keeping It Concise with shorten()
The shorten()
function truncates text to fit within a specified width and adds a placeholder (like “…”) at the end:
short_text = textwrap.shorten("This is a long sentence!", width=15, placeholder="...")
print(short_text) # Output: This is a ...
5. Indentation: Structuring Your Text
You can add indentation to the beginning and subsequent lines of wrapped text using initial_indent
and subsequent_indent
:
indented_text = textwrap.fill(dedented_text, width=50, initial_indent=" ", subsequent_indent=" ")
print(indented_text)
Frequently Asked Questions (FAQ)
1. Can I customize the placeholder used in textwrap.shorten()
?
Yes, you can set the placeholder
argument to any string you prefer.
2. How can I create a hanging indent using textwrap
?
Set a larger value for subsequent_indent
than initial_indent
.
3. Can I use textwrap
with multi-line strings?
Absolutely! It works seamlessly with both single-line and multi-line strings.
4. Are there any other useful functions in the textwrap
module?
Yes, explore functions like wrap()
, dedent()
, and indent()
for further text manipulation capabilities.