Python - Riformattazione dei paragrafi

La formattazione dei paragrafi è necessaria quando gestiamo una grande quantità di testo e lo portiamo in un formato presentabile. Potremmo semplicemente voler stampare ogni riga con una larghezza specifica o provare ad aumentare il rientro per ogni riga successiva durante la stampa di una poesia. In questo capitolo usiamo un modulo chiamato cometextwrap3 per formattare i paragrafi secondo necessità.

Per prima cosa dobbiamo installare il pacchetto richiesto come segue

pip install textwrap3

Avvolgimento a una larghezza fissa

In questo esempio specifichiamo una larghezza di 30 caratteri in ogni riga per un paragrafo. Utilizza la funzione wrap specificando un valore per il parametro width.

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])

Quando eseguiamo il programma sopra, otteniamo il seguente output:

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.

Rientro variabile

In questo esempio aumentiamo il rientro per ogni riga di una poesia da stampare.

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

Quando eseguiamo il programma sopra, otteniamo il seguente output:

**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?