Come usare un bel modulo di stampa in Python

Come usare un bel modulo di stampa in Python
Questo articolo coprirà una guida sull'utilizzo del modulo "Pretty Print" e i suoi metodi disponibili in Python. Chiamato anche pPrint, questo modulo è disponibile nella libreria Python standard. Tutti i campioni di codice in questo articolo sono testati con Python 3.9.5 su Ubuntu 21.04.

Su pprint

Il modulo PPRINT può essere utilizzato per migliorare l'aspetto e la formattazione dell'uscita standard stampata utilizzando Python in un terminale. Formattando l'output, è possibile migliorare la sua leggibilità e persino esportarlo in un file esterno per archiviare l'output strutturato migliore. L'uso del modulo pprint può essere meglio compreso attraverso esempi, alcuni di essi sono elencati di seguito.

Sintassi di base del metodo pprint

Dai un'occhiata al campione del codice di seguito:

da pprint import pprint
d = "a": 1, "b": 2, "c": 3, "d": 4
stampa (d)
pprint (d)

L'esempio sopra illustra l'uso dei metodi di stampa e pprint. La prima riga importa il metodo PPRINT dal modulo PPRINT. La variabile "D" è un oggetto di tipo di dizionario con coppie di valore chiave. Successivamente, viene chiamato il metodo PPRINT e l'oggetto da stampare viene fornito come argomento (Python Dictionary in questo caso).

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'A': 1, 'B': 2, 'C': 3, 'D': 4
'A': 1, 'B': 2, 'C': 3, 'D': 4

Entrambi i metodi di stampa e pprint producono lo stesso output in cui non è stata ancora applicata alcuna formattazione all'output. I prossimi esempi mostreranno l'applicazione della formattazione all'output.

Convertire un'uscita a singola riga in output multiline

Per convertire un'output a singola riga in output multiline. Dai un'occhiata al campione del codice di seguito:

da pprint import pprint
d = "a": 1, "b": 2, "c": 3, "d": 4
pprint (d, larghezza = 1)

Il campione del codice è lo stesso dell'esempio mostrato sopra, con un nuovo argomento chiamato "larghezza" con un valore di 1. Il valore di larghezza può essere utilizzato per specificare il numero massimo di caratteri consentiti su una riga. Per impostazione predefinita questo valore è 80. Se gli oggetti / elementi nidificati di un oggetto superano i vincoli di larghezza, vengono spostati su una nuova linea. Poiché c'è un vincolo di solo 1 carattere, ogni elemento verrà spostato in una nuova linea usando l'approccio migliore identificato da Python per la stampa dell'oggetto. Questo approccio garantisce che ogni elemento abbia una linea completa in modo che sia leggibile e non rotto o troncato in parole parziali.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'a': 1,
'B': 2,
'c': 3,
'd': 4

Aggiunta di rientro all'output multiline

Se si dispone di una stringa multiline. Dai un'occhiata al campione del codice di seguito:

da pprint import pprint
d = "a": 1, "b": 2, "c": 3, "d": 4
pprint (d, larghezza = 1, rientro = 4)

Il campione di codice è lo stesso dell'esempio spiegato sopra. Tuttavia, è stato aggiunto un nuovo argomento chiamato "rientro" con un valore di 4. Ciò aggiungerà un rientro pari a 4 spazi prima di ogni oggetto.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'a': 1,
'B': 2,
'c': 3,
'd': 4

Si noti che l'argomento "rientro" non avrà alcun effetto sugli output a linea singola.

Limitare l'output stampato a determinati livelli

Se l'oggetto che stai stampando contiene oggetti nidificati, è possibile utilizzare l'argomento "profondità" per limitare l'output a determinati livelli. Dai un'occhiata al campione del codice di seguito:

da pprint import pprint
d = "a": 1, "b": 2, "c": 3, "d": [4, 5]
pprint (d, profondità = 1)

Nell'esempio sopra, i dati vengono stampati fino a un livello di profondità di 1. In altre parole, vengono stampati solo oggetti che non contengono altri oggetti nidificati. L'elenco "[4, 5]" ha un livello di profondità di 2 e non sarà stampato. Per indicare che è nascosto, vengono utilizzati tre punti o ellissi.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'A': 1, 'B': 2, 'C': 3, 'D': […]

Ecco un altro esempio in cui viene utilizzata una profondità di 2 livelli. Il primo elemento nidificato appare nell'output ma il secondo no.

da pprint import pprint
d = "a": 1, "b": 2, "c": 3, "d": [4, [5, 6]]
pprint (d, profondità = 2)

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'A': 1, 'B': 2, 'C': 3, 'D': [4, […]]

Ottenere un output piuttosto stampato come valore di ritorno

Se si desidera utilizzare l'output piuttosto stampato in altre funzioni di Python o assegnarlo a una variabile, è possibile utilizzare il metodo "pformat". È identico al metodo pprint, tranne per il fatto che non stampare nulla ma restituisce una stringa formattata. Dai un'occhiata al campione del codice di seguito:

da pprint import pformat
d = "a": 1, "b": 2, "c": 3, "d": [4, [5, 6]]
Pretty = pformat (d, profondità = 2)
Stampa (Pretty)

Invece di pprint, ora pformat è stato importato dal modulo pprint. La variabile "Pretty" memorizza la stringa formattata in modo che possa essere utilizzata più avanti nel codice. L'ultima istruzione stampa l'output della graziosa variabile.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'A': 1, 'B': 2, 'C': 3, 'D': [4, […]]

Utilizzo del modulo JSON per stampare piuttosto un dizionario Python

Se vuoi stampare un dizionario Python in una struttura simile a JSON ben rientrata, il modulo PPRINT potrebbe non essere sufficiente. In tal caso, il metodo "Dumps" dal modulo JSON produce un risultato molto migliore. Dai un'occhiata al campione del codice di seguito:

da pprint import pprint
da JSON Import Dumps
d = "a": 1, "b": 2, "c": 3, "d": 4
pprint (d, larghezza = 1, rientro = 4)
Stampa (dumps (d, rientro = 4))

Oltre al metodo PPRINT, il metodo "Dumps" dal modulo JSON è stato ora importato nel campione del codice. È stato fornito un argomento chiamato "rientro" con un valore di 4.

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

'a': 1,
'B': 2,
'c': 3,
'd': 4

"A": 1,
"B": 2,
"C": 3,
"D": 4

Come puoi vedere nell'output, il metodo Dumps produce un dizionario Python formattato migliore.

Conclusione

Il bel modulo di stampa o pprint può essere utilizzato per produrre output ben formattato in Python. L'output standard di molti oggetti Python potrebbe non essere esattamente leggibile, specialmente quando i dati sono grandi e hanno molti oggetti nidificati. In tali casi, è possibile utilizzare PPRINT per migliorare la leggibilità e la formattazione dell'output.