Учебники

Python — переформатирование абзацев

Форматирование абзацев необходимо, когда мы имеем дело с большим количеством текста и переводим его в презентабельный формат. Мы можем просто захотеть напечатать каждую строку с определенной шириной или попытаться увеличить отступ для каждой следующей строки при печати стихотворения. В этой главе мы используем модуль с именем textwrap3 для форматирования абзацев по мере необходимости.

Сначала нам нужно установить необходимый пакет следующим образом

 pip install textwrap3 

Упаковка в фиксированную ширину

В этом примере мы указываем ширину 30 символов в каждой строке для абзаца. Используйте функцию обтекания, указав значение для параметра ширины.

from textwrap3 import wrap

text = 'In late summer 1945, guests are gathered for the wedding reception of Don Vito Corleones daughter Connie (Talia Shire) and Carlo Rizzi (Gianni Russo). Vito (Marlon Brando), the head of the Corleone Mafia family, is known to friends and associates as Godfather. He and Tom Hagen (Robert Duvall), the Corleone family lawyer, are hearing requests for favors because, according to Italian tradition, no Sicilian can refuse a request on his daughters wedding day.'

x = wrap(text, 30)
for i in range(len(x)):
    print(x[i])

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

In late summer 1945, guests
are gathered for the wedding
reception of Don Vito
Corleones daughter Connie
(Talia Shire) and Carlo Rizzi
(Gianni Russo). Vito (Marlon
Brando), the head of the
Corleone Mafia family, is
known to friends and
associates as Godfather. He
and Tom Hagen (Robert Duvall),
the Corleone family lawyer,
are hearing requests for
favors because, according to
Italian tradition, no Sicilian
can refuse a request on his
daughters wedding day.

Переменный отступ

В этом примере мы увеличиваем отступ для каждой строки поэмы, которая будет напечатана.


import textwrap3

FileName = ("path\poem.txt")

print("**Before Formatting**")
print(" ")

data=file(FileName).readlines()
for i in range(len(data)):
   print data[i]
   
print(" ")
print("**After Formatting**")
print(" ")
data=file(FileName).readlines()
for i in range(len(data)):
   dedented_text = textwrap3.dedent(data[i]).strip()
   print dedented_text

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод: