Python: cambio de formato de párrafos
El formateo de párrafos es necesario cuando tratamos con una gran cantidad de texto y lo llevamos a un formato presentable. Es posible que queramos imprimir cada línea con un ancho específico o intentar aumentar la sangría para cada línea siguiente al imprimir un poema. En este capítulo usamos un módulo llamadotextwrap3 para dar formato a los párrafos según sea necesario.
Primero necesitamos instalar el paquete requerido de la siguiente manera
pip install textwrap3
Envolver a un ancho fijo
En este ejemplo, especificamos un ancho de 30 caracteres en cada línea para un párrafo. Utilice la función de ajuste especificando un valor para el parámetro de ancho.
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])
Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:
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.
Sangría variable
En este ejemplo, aumentamos la sangría para cada línea de un poema que se imprimirá.
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
Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:
**Before Formatting**
Summer is here.
Sky is bright.
Birds are gone.
Nests are empty.
Where is Rain?
**After Formatting**
Summer is here.
Sky is bright.
Birds are gone.
Nests are empty.
Where is Rain?