Cómo usar el módulo de impresión bonito en Python

Cómo usar el módulo de impresión bonito en Python
Este artículo cubrirá una guía sobre el uso del módulo "Pretty Print" y sus métodos disponibles en Python. También llamado PPrint, este módulo está disponible en la biblioteca estándar de Python. Todas las muestras de código en este artículo se prueban con Python 3.9.5 en Ubuntu 21.04.

Acerca de Pprint

El módulo PPRINT se puede usar para mejorar la apariencia y el formateo de la salida estándar impresa usando Python en un terminal. Al formatear la salida, puede mejorar su legibilidad e incluso exportarla a un archivo externo para almacenar la salida mejor estructurada. El uso del módulo PPRINT se puede entender mejor a través de ejemplos, algunos de ellos se enumeran a continuación.

Sintaxis básica del método PPRint

Eche un vistazo a la muestra de código a continuación:

de Pprint import pprint
d = "A": 1, "B": 2, "C": 3, "D": 4
Imprimir (d)
PPRINT (D)

El ejemplo anterior ilustra el uso de métodos de impresión y PPRint. La primera línea importa el método PPRint desde el módulo PPRINT. La variable "D" es un objeto de tipo de diccionario con pares de valor clave. A continuación, se llama al método PPRint y el objeto a imprimir se le suministra como argumento (Diccionario de Python en este caso).

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

Los métodos de impresión y PPRint producen la misma salida que no se ha aplicado ningún formato a la salida todavía. Los próximos ejemplos mostrarán la aplicación del formato a la salida.

Convertir una salida de una sola línea a salida multilínea utilizando PPRINT

Para convertir una salida de una sola línea en salida multilínea, deberá suministrar la variable de "ancho" como argumento al método PPRint. Eche un vistazo a la muestra de código a continuación:

de Pprint import pprint
d = "A": 1, "B": 2, "C": 3, "D": 4
PPrint (D, ancho = 1)

La muestra de código es la misma que el ejemplo que se muestra arriba, con un nuevo argumento llamado "ancho" que tiene un valor de 1. El valor de ancho se puede usar para especificar el número máximo de caracteres permitidos en una línea. Por defecto, este valor es 80. Si los objetos / elementos anidados de un objeto superan las restricciones de ancho, se trasladan a una nueva línea. Dado que hay una restricción de solo 1 carácter, cada elemento se moverá a una nueva línea utilizando el mejor enfoque identificado por Python para que el objeto se imprima. Este enfoque asegura que cada elemento tenga una línea completa para que sea legible y no se rompa ni trunce en palabras parciales.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

Agregar sangría a la salida multilínea usando PPrint

Si tiene una cadena multilínea o ha roto una salida de una sola línea a la salida multilínea utilizando el método explicado anteriormente, puede usar el argumento "sangría" para agregar espaciado antes de cada objeto en la salida. Eche un vistazo a la muestra de código a continuación:

de Pprint import pprint
d = "A": 1, "B": 2, "C": 3, "D": 4
PPrint (d, ancho = 1, sangría = 4)

La muestra de código es la misma que el ejemplo explicado anteriormente. Sin embargo, se ha agregado un nuevo argumento llamado "sangría" con un valor de 4. Esto agregará sangría igual a 4 espacios antes de cada objeto.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

Tenga en cuenta que el argumento de "sangría" no tendrá efecto en las salidas de una sola línea.

Limitar la salida impresa a ciertos niveles

Si el objeto que está imprimiendo contiene objetos anidados, puede usar el argumento de "profundidad" para limitar la salida a ciertos niveles. Eche un vistazo a la muestra de código a continuación:

de Pprint import pprint
d = "A": 1, "B": 2, "C": 3, "D": [4, 5]
PPrint (d, profundidad = 1)

En el ejemplo anterior, los datos se imprimen hasta un nivel de profundidad de 1. En otras palabras, solo se imprimen objetos que no contienen otros objetos anidados. La lista "[4, 5]" tiene un nivel de profundidad de 2 y no se imprimirá. Para indicar que está oculto, se usan tres puntos o elipses.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

Aquí hay otro ejemplo en el que se usa una profundidad de 2 niveles. El primer elemento anidado aparece en la salida pero el segundo no.

de Pprint import pprint
d = "A": 1, "B": 2, "C": 3, "D": [4, [5, 6]]
PPrint (D, profundidad = 2)

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

Obtener una salida impresa bastante como un valor de retorno

Si desea usar la salida impresa bonita en otras funciones de Python o asignarla a una variable, puede usar el método "PFormat". Es idéntico al método PPRint, excepto que no imprime nada, pero devuelve una cadena formateada. Eche un vistazo a la muestra de código a continuación:

de PPRint Import PFormat
d = "A": 1, "B": 2, "C": 3, "D": [4, [5, 6]]
bonito = pformat (d, profundidad = 2)
Imprimir (bonito)

En lugar de PPRint, ahora PFormat se ha importado del módulo PPRINT. La variable "bonita" almacena la cadena formateada para que pueda usarse más adelante en el código. La última declaración imprime la salida de la bonita variable.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

Usar el módulo JSON para imprimir un diccionario Python

Si desea imprimir un diccionario de Python en una estructura similar a JSON con sangría, el módulo PPRint podría no ser suficiente. En tal caso, el método de "volcados" del módulo JSON produce un resultado mucho mejor. Eche un vistazo a la muestra de código a continuación:

de Pprint import pprint
De los volcados de importación JSON
d = "A": 1, "B": 2, "C": 3, "D": 4
PPrint (d, ancho = 1, sangría = 4)
Imprimir (volcados (d, sangría = 4))

Además del método PPRint, el método "volcados" del módulo JSON ahora se ha importado a la muestra de código. Se ha suministrado un argumento llamado "sangría" con un valor de 4.

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

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

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

Como puede ver en la salida, el método Dumps produce un diccionario de Python mejor formateado.

Conclusión

El módulo Pretty Print o PPrint se puede usar para producir una salida bien formateada en Python. La salida estándar de muchos objetos de Python puede no ser exactamente legible, especialmente cuando los datos son grandes y tienen muchos objetos anidados. En tales casos, puede usar PPrint para mejorar la legibilidad y el formateo de la salida.