import os
import json
# Funciones para las operaciones sobre el archivo JSON
def crear_archivo_json(nombre_archivo):
"""Crea un archivo JSON y escribe datos iniciales."""
datos_iniciales = [
{"ID": 1, "Nombre": "Juan", "Edad": 28},
{"ID": 2, "Nombre": "Ana", "Edad": 22},
{"ID": 3, "Nombre": "Pedro", "Edad": 34}
]
with open(nombre_archivo, 'w') as archivo:
json.dump(datos_iniciales, archivo, indent=4)
print(f"Archivo '{nombre_archivo}' creado con datos iniciales.")
def agregar_datos_json(nombre_archivo):
"""Agrega una nueva entrada al archivo JSON."""
try:
with open(nombre_archivo, 'r') as archivo:
datos = json.load(archivo)
except FileNotFoundError:
datos = []
id_nuevo = int(input("Ingrese ID: "))
nombre_nuevo = input("Ingrese Nombre: ")
edad_nueva = int(input("Ingrese Edad: "))
datos.append({"ID": id_nuevo, "Nombre": nombre_nuevo, "Edad": edad_nueva})
with open(nombre_archivo, 'w') as archivo:
json.dump(datos, archivo, indent=4)
print(f"Datos {id_nuevo, nombre_nuevo, edad_nueva} agregados al archivo '{nombre_archivo}'.")
def eliminar_datos_json(nombre_archivo):
"""Elimina una entrada del archivo JSON según el ID proporcionado."""
try:
with open(nombre_archivo, 'r') as archivo:
datos = json.load(archivo)
except FileNotFoundError:
print(f"El archivo '{nombre_archivo}' no existe.")
return
id_eliminar = int(input("Ingrese el ID que desea eliminar: "))
datos = [entrada for entrada in datos if entrada["ID"] != id_eliminar]
with open(nombre_archivo, 'w') as archivo:
json.dump(datos, archivo, indent=4)
print(f"Datos con ID {id_eliminar} eliminados del archivo '{nombre_archivo}'.")
def modificar_datos_json(nombre_archivo):
"""Modifica una entrada del archivo JSON según el ID proporcionado."""
try:
with open(nombre_archivo, 'r') as archivo:
datos = json.load(archivo)
except FileNotFoundError:
print(f"El archivo '{nombre_archivo}' no existe.")
return
id_modificar = int(input("Ingrese el ID que desea modificar: "))
for entrada in datos:
if entrada["ID"] == id_modificar:
entrada["Nombre"] = input("Ingrese el nuevo Nombre: ")
entrada["Edad"] = int(input("Ingrese la nueva Edad: "))
break
else:
print(f"No se encontró ninguna entrada con ID {id_modificar}.")
return
with open(nombre_archivo, 'w') as archivo:
json.dump(datos, archivo, indent=4)
print(f"Datos con ID {id_modificar} modificados en el archivo '{nombre_archivo}'.")
def mostrar_datos_json(nombre_archivo):
"""Muestra el contenido del archivo JSON."""
if os.path.exists(nombre_archivo):
with open(nombre_archivo, 'r') as archivo:
datos = json.load(archivo)
print("\nContenido del archivo:")
for entrada in datos:
print(f"ID: {entrada['ID']}, Nombre: {entrada['Nombre']}, Edad: {entrada['Edad']}")
else:
print(f"El archivo '{nombre_archivo}' no existe.")
def borrar_archivo_json(nombre_archivo):
"""Borra el archivo JSON 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 JSON que desea crear o manipular (con extensión .json): ")
while True:
print("\n--- Menú de Operaciones con Archivos JSON ---")
print("1. Crear archivo JSON")
print("2. Agregar datos")
print("3. Eliminar datos")
print("4. Modificar datos")
print("5. Mostrar datos")
print("6. Borrar archivo JSON")
print("7. Salir")
opcion = input("Seleccione una opción: ")
if opcion == '1':
crear_archivo_json(nombre_archivo)
elif opcion == '2':
agregar_datos_json(nombre_archivo)
elif opcion == '3':
eliminar_datos_json(nombre_archivo)
elif opcion == '4':
modificar_datos_json(nombre_archivo)
elif opcion == '5':
mostrar_datos_json(nombre_archivo)
elif opcion == '6':
borrar_archivo_json(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()