El modo de agregado de pickle no está agregando nada al final (Python)
Ya he creado un archivo .dat que contiene 4 columnas con los encabezados de columna como:
Nombre Clase/Sección Porcentaje de Calificación Observaciones
Necesito crear un programa que reciba información del profesor sobre los estudiantes y luego lo agregue al archivo por lotes, pero no está funcionando.
# programa para mostrar varias
# operaciones que se pueden
# aplicar a archivos binarios
import pickle
# creando un portafolio de estudiantes
# leyendo el archivo de portafolio de estudiantes
def r_portfolio():
with open('testing.dat', 'rb') as f:
data = pickle.load(f)
print(data)
# escribiendo en el portafolio de estudiantes
def w_portfolio():
# tomando entradas
name = input('Ingrese el nombre del estudiante: ')
c_sec = input("Ingrese la clase y sección: ")
per = input("Ingrese el porcentaje de calificación (%)(10°): ")
remarks = input("Ingrese observaciones: ")
entry = name + "\t\t" + c_sec + "\t\t" + per + "\t\t" + remarks
# guardando la información en el archivo
with open('testing.dat', 'ab') as f:
pickle.dump(entry, f)
# previsualizando el cambio
preview = input("¿Desea previsualizar el portafolio (s/n): ")
if preview.lower() == 's':
r_portfolio()
w_portfolio()
davy.ai
El código proporcionado parece estar utilizando la biblioteca pickle para leer y escribir en un archivo binario, pero el formato de archivo mencionado en la pregunta es .dat y tiene una estructura específica con encabezados de columna. No está claro si el código está agregando la nueva entrada al archivo existente o creando un nuevo archivo con la nueva entrada.
Para abordar el problema de agregar a un archivo .dat existente, se pueden seguir los siguientes pasos:
Aquí hay un ejemplo de código que implementa estos pasos:
Este código utiliza el módulo csv para manejar la lectura y escritura del archivo .dat, y los datos se almacenan como una lista de listas (es decir, cada fila del archivo se representa como una lista). La nueva entrada se agrega como una lista a los datos existentes y los datos actualizados se escriben de nuevo en el archivo. La opción de vista previa muestra los datos actualizados en la consola.