Guardando Variables con la Función pprint.pformat()

Recuerde de «Impresión bonita o formateada» que la función pprint.pprint() «imprimirá bonita» el contenido de una lista o diccionario en la pantalla, mientras que la función pprint.pformat() devolverá este mismo texto como una cadena en lugar de imprimirlo. Esta cadena no sólo está formateada para ser fácil de leer, sino que también es código Python sintácticamente correcto. Digamos que tienes un diccionario almacenado en una variable y quieres guardar esta variable y su contenido para un uso futuro. Usando pprint.pformat() te dará una cadena que puedes escribir en un archivo .py. Este archivo será tu propio módulo que podrás importar siempre que quieras utilizar la variable almacenada en él.

Por ejemplo, introduce lo siguiente en el shell interactivo:

>>> import pprint
>>> cats = [{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
>>> pprint.pformat(cats)
"[{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]"
>>> fileObj = open('myCats.py', 'w')
>>> fileObj.write('cats = ' + pprint.pformat(cats) + '\n')
83
>>> fileObj.close()

Aquí importamos pprint para poder utilizar pprint.pformat(). Tenemos una lista de diccionarios, almacenada en una variable cats. Para mantener la lista en cats disponible incluso después de cerrar el shell, usamos pprint.pformat() para devolverla como una cadena. Una vez que tenemos los datos en cats como una cadena, es fácil escribir la cadena en un archivo, que llamaremos myCats.py.

Los módulos que una sentencia import importa son en sí mismos sólo scripts de Python. Cuando la cadena de pprint.pformat() se guarda en un archivo .py, el archivo es un módulo que puede ser importado como cualquier otro.

Y como los scripts de Python son en sí mismos sólo archivos de texto con la extensión de archivo .py, tus programas de Python pueden incluso generar otros programas de Python. Entonces puedes importar estos archivos en los scripts.

>>> import myCats
>>> myCats.cats
[{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
>>> myCats.cats[0]
{'name': 'Zophie', 'desc': 'chubby'}
>>> myCats.cats[0]['name']
'Zophie'

La ventaja de crear un archivo .py (en lugar de guardar variables con el módulo shelve) es que, al ser un archivo de texto, su contenido puede ser leído y modificado por cualquier persona con un simple editor de texto. Sin embargo, para la mayoría de las aplicaciones, guardar los datos utilizando el módulo shelve es la forma preferida de guardar las variables en un archivo. Sólo los tipos de datos básicos, como los enteros, los flotantes, las cadenas, las listas y los diccionarios, pueden escribirse en un archivo como texto simple. Los objetos de archivo, por ejemplo, no pueden codificarse como texto.

Deja una respuesta