Para abrir y guardar un archivo se dispone de un ejemplo de una tabla de voluntarios.txt
. La actividad es continuación del ejercicio «Playatón, limpieza de Playas«.
Abrir un archivo
Para el manejo de un archivo es necesario ‘abrir’ el proceso con la instrucción open()
que requiere un nombre de archivo y el parámetro de lectura 'r'
(read).
El archivo de ejemplo voluntarios.txt para la lectura se debe encontrar en el mismo directorio del script de Python. Si se ubica el archivo en otro directorio se añade la ruta al nombre del archivo.
La lectura de datos para la lista de ejemplo es línea por línea hasta encontrar una línea vacía (''
) al final del archivo.
En el ejemplo, se separan los datos con la instrucción split()
, se los ingresa en un registro para un diccionario que se adjunta la lista de voluntarios.
Al final es necesario cerrar el archivo mediante archivo.close()
print(' --- Abrir archivo de voluntarios---') voluntarios=[] # lista para datos # prepara el modo lectura(read 'r') de archivo archivo=open('voluntarios.txt','r') linea=archivo.readline() # lee la primera linea del archivo while (linea!=''): #Hasta encontrar el final del archivo datos=linea.split(',') # Divide los datos separados por comas ced=int(datos[0]) nom=datos[1] pla=int(datos[2]) rec=float(datos[3]) # crea el registro en forma de diccionario para la lista registro={'cedula':ced, 'nombre': nom, 'playa':pla, 'recolectado':rec} voluntarios.append(registro) # Lee la siguiente linea linea=archivo.readline() archivo.close() # Cierra el archivo n=len(voluntarios) print(' Se recuperaron '+ str(n) + ' registros de voluntarios')
Guardar un archivo
para almacenar un archivo es necesario ‘abrir’ el proceso con la instrucción open()
que requiere un nombre de archivo y el parámetro de lectura 'w'
de «write».
Se escriben los datos en una línea de texto. Al usar los registros de una lista, se los concatena separador por comas ','
antes de escribir la línea en el archivo.
Al final es necesario cerrar el archivo mediante archivo.close()
print('---- guardar el archivo de voluntarios ---') # prepara el modo escritura(write 'w') de archivo archivo=open('voluntarios.txt','w') n=len(voluntarios) fila=0 while not(fila>=n): # Crea linea de texto con datos para un registro, separada por comas registro= str(voluntarios[fila]['cedula'])+','+ voluntarios[fila]['nombre'] +','+str(voluntarios[fila]['playa']) +','+str(voluntarios[fila]['recolectado']) +'\n' # Escribe en el archivo archivo.write(registro) fila=fila+1 archivo.close() # Cierra el archivo print('archivo guardado...')
Ejercicio 05
A partir del archivo adjunto: ‘voluntarios2.txt‘ , realizar cada ítem sin cargar todos los registros en memoria, procesar registro por registro.
- Calcule cuántos voluntarios se registraron en cada playa
- Determine el total de residuos recolectados en cada playa
- Muestre el total de playas atendidas y el total recolectado en el evento.