Guardar texto, JSON y CSV en un archivo en Python

Guardar los datos en un archivo es una de las tareas de programación más comunes que puede encontrar en su vida de desarrollador.
Generalmente, los programas toman algo de entrada y producen algo de salida. Hay numerosos casos en los que quisiéramos persistir estos resultados. Es posible que nos encontremos guardando datos en un archivo para su procesamiento posterior (desde páginas web que navegamos, simples volcados de datos tabulares que usamos para informes, aprendizaje automático y capacitación o registro durante el tiempo de ejecución de la aplicación) confiamos en que las aplicaciones escriban en archivos en lugar de hacerlo. a mano.
Python nos permite guardar archivos de varios tipos sin tener que usar bibliotecas de terceros. En este artículo, nos sumergiremos en guardar los formatos de archivo más comunes en Python.

Abrir y cerrar un archivo

Abriendo un archivo

Se puede acceder al contenido de un archivo cuando se abre, y ya no está disponible para leer y escribir después de que se haya cerrado.
Abrir un archivo es simple en Python:
my_data_file = open('data.txt', 'w')  
Cuando abra un archivo, necesitará el nombre del archivo, una cadena que podría ser una ruta relativa o absoluta. El segundo argumento es el modo, esto determina las acciones que puede hacer con el archivo abierto.
Éstos son algunos de los más utilizados:
  • r - (modo predeterminado) abrir el archivo para leer
  • w - abra el archivo para escribir, sobrescribiendo el contenido si el archivo ya existe con datos
  • x - crea un nuevo archivo, fallando si existe
  • a - abra el archivo para escribirlo, agregando nuevos datos al final del contenido del archivo si ya existe
  • b - escriba datos binarios en archivos en lugar de los datos de texto predeterminados
  • + - Permitir leer y escribir a un modo.
Digamos que quería escribir en un archivo y luego leerlo después, su modo debería ser 'w +'. Si desea escribir y luego leer desde un archivo, sin eliminar el contenido anterior, usará 'a +'.

Cerrando un archivo

Cerrar un archivo es aún más fácil en Python:
my_data_file.close()  
Simplemente necesita llamar al método de cierre en el objeto de archivo. Es importante cerrar el archivo una vez que haya terminado de usarlo, y hay muchas buenas razones para hacerlo:
  • Los archivos abiertos ocupan espacio en la memoria RAM
  • Reduce la posibilidad de que se dañen los datos porque ya no es accesible
  • Hay un límite de archivos que tu SO puede tener abiertos
Para los scripts pequeños, estas no son preocupaciones urgentes, y algunas implementaciones de Python en realidad cerrarán los archivos automáticamente por usted, pero para los programas grandes no deje el cierre de sus archivos al azar y asegúrese de liberar los recursos utilizados.

Usando la palabra clave "con"

Cerrar un archivo puede ser fácilmente olvidado, somos humanos después de todo. Por suerte para nosotros, Python tiene un mecanismo para usar un archivo y cerrarlo automáticamente cuando hayamos terminado.
Para hacer esto, simplemente necesitamos usar la withpalabra clave:
with open('data.txt', 'w') as my_data_file:  
    # TODO: write data to the file
# After leaving the above block of code, the file is closed
El archivo se abrirá para todo el código que está sangrado después de usar la withpalabra clave, marcado como el # TODOcomentario. Una vez que se complete ese bloque de código, el archivo se cerrará automáticamente.
Esta es la forma recomendada de abrir y escribir en un archivo, ya que no tiene que cerrarlo manualmente para liberar recursos y ofrece un mecanismo a prueba de fallas para mantener su mente en los aspectos más importantes de la programación.

Guardar un archivo de texto

Ahora que conocemos la mejor manera de acceder a un archivo, vamos directamente a escribir datos.
Afortunadamente, Python también lo hace sencillo:
with open('do_re_mi.txt', 'w') as f:  
    f.write('Doe, a deer, a female deer\n')
    f.write('Ray, a drop of golden sun\n')
La write()función toma una cadena y pone ese contenido en la secuencia del archivo. Aunque no lo almacenamos, la write()función devuelve el número de caracteres que acaba de ingresar, es decir, la longitud de la cadena de entrada.
Nota : Tenga en cuenta la inclusión del carácter de nueva línea, \nSe utiliza para escribir en la siguiente línea del archivo; de lo contrario, todo el texto se agregaría como una sola línea.

Guardando múltiples líneas a la vez

Con la write()función podemos tomar una cadena y ponerla en un archivo. ¿Y si quisiéramos escribir varias líneas a la vez?
Podemos usar la writelines()función para poner los datos en una secuencia (como una lista o tupla) y en un archivo:
with open('browsers.txt', 'w') as f:  
    web_browsers = ['Firefox\n', 'Chrome\n', 'Edge\n']
    f.writelines(web_browsers)
Como antes, si queremos que los datos aparezcan en nuevas líneas, incluimos el carácter de nueva línea al final de cada cadena.
Si desea omitir el paso de ingresar manualmente el carácter de nueva línea después de cada elemento de la lista, es fácil automatizarlo:
with open('browsers.txt', 'w') as f:  
    web_browsers = ['Firefox\n', 'Chrome\n', 'Edge\n']
    f.writelines("%s\n" % line for line in web_browsers)
Nota : La entrada para writelines()debe ser una secuencia plana de cadenas o bytes, no se permiten números, objetos o secuencias anidadas como una lista dentro de una lista.
Si está interesado en leer más sobre listas y tuplas, ya tenemos un artículo dedicado a ellas: Listas contra tuplas en Python .

Guardando un archivo CSV

Los archivos CSV (valores separados por comas) se usan comúnmente para almacenar datos tabulares. Debido a su popularidad, Python tiene algunos métodos incorporados para facilitar la escritura de archivos de ese tipo:
import csv

weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']  
sales = ['10', '8', '19', '12', '25']

with open('sales.csv', 'w') as csv_file:  
    csv_writer = csv.writer(csv_file, delimiter=',')
    csv_writer.writerow(weekdays)
    csv_writer.writerow(sales)
Primero necesitamos importar la csvbiblioteca para obtener sus funciones de ayuda. Abrimos el archivo como estamos acostumbrados, pero en lugar de escribir contenido en el csv_fileobjeto, creamos un nuevo objeto llamado csv_writer.
Este objeto nos proporciona el writerow()método que nos permite colocar todos los datos de la fila en el archivo de una sola vez.
Si desea obtener más información sobre el uso de archivos CSV en Python, puede leer más aquí: Leer y escribir archivos CSV en Python .

Guardando un archivo JSON

JSON es otro formato popular para almacenar datos, y al igual que con los CSV, Python ha simplificado la tarea de escribir los datos de su diccionario en los archivos JSON:
import json

my_details = {  
    'name': 'John Doe',
    'age': 29
}

with open('personal.json', 'w') as json_file:  
    json.dump(my_details, json_file)
Necesitamos importar la jsonbiblioteca y abrir el archivo. Para escribir realmente los datos en el archivo, solo llamamos a la dump()función, dándole nuestro diccionario de datos y el objeto de archivo.
Si desea obtener más información sobre el uso de archivos JSON en Python, puede obtener más información sobre este artículo: Leer y escribir JSON en un archivo en Python .

Conclusión

Guardar archivos puede ser útil en muchos tipos de programas que escribimos. Para escribir un archivo en Python, primero necesitamos abrir el archivo y asegurarnos de que lo cerramos más tarde.
Es mejor usar la withpalabra clave para que los archivos se cierren automáticamente cuando terminemos de escribirles.
Podemos usar el write()método para poner el contenido de una cadena en un archivo o usarlo writelines()si tenemos una secuencia de texto para colocar en el archivo.
Para datos CSV y JSON, podemos usar funciones especiales que Python proporciona para escribir datos en un archivo una vez que el archivo está abierto.

Acerca de: Programator

Somos Instinto Programador

0 comentarios:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Con tecnología de Blogger.