import os
import csv
# Funciones para las operaciones sobre el archivo CSV
def crear_archivo_csv(nombre_archivo):
"""Crea un archivo CSV y escribe datos iniciales."""
with open(nombre_archivo, 'w', newline='') as archivo:
writer = csv.writer(archivo)
writer.writerow(['ID', 'Nombre', 'Edad']) # Escribir encabezado
writer.writerow(['1', 'Juan', '28'])
writer.writerow(['2', 'Ana', '22'])
writer.writerow(['3', 'Pedro', '34'])
print(f"Archivo '{nombre_archivo}' creado con datos iniciales.")
def agregar_datos_csv(nombre_archivo):
"""Agrega una nueva línea de datos al archivo CSV."""
id_nuevo = input("Ingrese ID: ")
nombre_nuevo = input("Ingrese Nombre: ")
edad_nueva = input("Ingrese Edad: ")
with open(nombre_archivo, 'a', newline='') as archivo:
writer = csv.writer(archivo)
writer.writerow([id_nuevo, nombre_nuevo, edad_nueva])
print(f"Datos {[id_nuevo, nombre_nuevo, edad_nueva]} agregados al archivo '{nombre_archivo}'.")
def eliminar_datos_csv(nombre_archivo):
"""Elimina una línea del archivo CSV según el ID proporcionado."""
id_eliminar = input("Ingrese el ID que desea eliminar: ")
lineas = []
with open(nombre_archivo, 'r', newline='') as archivo:
reader = csv.reader(archivo)
lineas = [linea for linea in reader if linea[0] != id_eliminar] # Filtrar líneas
with open(nombre_archivo, 'w', newline='') as archivo:
writer = csv.writer(archivo)
writer.writerows(lineas)
print(f"Datos con ID {id_eliminar} eliminados del archivo '{nombre_archivo}'.")
def modificar_datos_csv(nombre_archivo):
"""Modifica una línea del archivo CSV según el ID proporcionado."""
id_modificar = input("Ingrese el ID que desea modificar: ")
nombre_modificado = input("Ingrese el nuevo Nombre: ")
edad_modificada = input("Ingrese la nueva Edad: ")
lineas = []
with open(nombre_archivo, 'r', newline='') as archivo:
reader = csv.reader(archivo)
for linea in reader:
if linea[0] == id_modificar:
lineas.append([id_modificar, nombre_modificado, edad_modificada]) # Modificar datos
else:
lineas.append(linea)
with open(nombre_archivo, 'w', newline='') as archivo:
writer = csv.writer(archivo)
writer.writerows(lineas)
print(f"Datos con ID {id_modificar} modificados en el archivo '{nombre_archivo}'.")
def mostrar_datos_csv(nombre_archivo):
"""Muestra el contenido del archivo CSV."""
if os.path.exists(nombre_archivo):
with open(nombre_archivo, 'r', newline='') as archivo:
reader = csv.reader(archivo)
print("\nContenido del archivo:")
for linea in reader:
print(', '.join(linea))
else:
print(f"El archivo '{nombre_archivo}' no existe.")
def borrar_archivo_csv(nombre_archivo):
"""Borra el archivo CSV del sistema."""
if os.path.exists(nombre_archivo):
os.remove(nombre_archivo)
print(f"Archivo '{nombre_archivo}' borrado.")
else:
print(f"El archivo '{nombre_archivo}' no existe.")
# Menú interactivo
def menu():
"""Muestra el menú de opciones y ejecuta la acción seleccionada."""
nombre_archivo = input("Ingrese el nombre del archivo CSV que desea crear o manipular (con extensión .csv): ")
while True:
print("\n--- Menú de Operaciones con Archivos CSV ---")
print("1. Crear archivo CSV")
print("2. Agregar datos")
print("3. Eliminar datos")
print("4. Modificar datos")
print("5. Mostrar datos")
print("6. Borrar archivo CSV")
print("7. Salir")
opcion = input("Seleccione una opción: ")
if opcion == '1':
crear_archivo_csv(nombre_archivo)
elif opcion == '2':
agregar_datos_csv(nombre_archivo)
elif opcion == '3':
eliminar_datos_csv(nombre_archivo)
elif opcion == '4':
modificar_datos_csv(nombre_archivo)
elif opcion == '5':
mostrar_datos_csv(nombre_archivo)
elif opcion == '6':
borrar_archivo_csv(nombre_archivo)
elif opcion == '7':
print("Saliendo del programa. ¡Hasta luego!")
break
else:
print("Opción no válida. Por favor, intente de nuevo.")
# Ejecutar el menú
menu()