def modif_sw(arbol): file = abrir('starwars') busc = input('Ingrese nombre del personaje a modificar: ') val = busqueda_arbol(arbol, busc) if val is not None: print('1) Nombre') print('2) Altura') print('3) Peso') mod = input('Elija campo a modificar: ') sw = leer(file, pos) if mod == '1': nom = input('Ingrese el nuevo nombre: ') dato = Personaje(nom, sw.altura, sw.peso) modificar(file, pos, dato) sw = leer(file, pos) arbol = insertar_nodo(arbol, sw.nombre, pos) elif mod == '2': alt = int(input('Ingrese la nueva altura: ')) dato = Personaje(sw.nombre, alt, sw.peso) modificar(file, pos, dato) sw = leer(file, pos) arbol = insertar_nodo(arbol, sw.nombre, pos) elif mod == '3': peso = int(input('Ingrese el nuevo peso: ')) dato = Personaje(sw.nombre, sw.altura, peso) modificar(file, pos, dato) sw = leer(file, pos) arbol = insertar_nodo(arbol, sw.nombre, pos) else: print('ERROR') else: print('El personaje no existe') cerrar(file)
def initFileLibros(): ruta_file = "Libros/libros" titulos = [ "Algoritmos", "Algol", "Mineria de Datos", "Base de Datos", "Sistemas y organizaciones", "Calculo", "Redes" ] autores = [ "autor1", "autor2", "autor3", "autor4", "autor5", "autor6", "autor7", "Tanenbaum", "Connolly", "Rowling", "Riordan" ] editoriales = ["edit1", "edit2", "edit3", "edit4", "edit5"] archivo = abrir(ruta_file) limpiar(archivo) for i in range(100): titulo = choice(titulos) isbn = i autor = definirAutores(autores) editorial = choice(editoriales) cant_pag = randint(100, 2000) libro = Libro(titulo, isbn, autor, editorial, cant_pag) guardar(archivo, libro) cerrar(archivo)
def initFilePokemon(): ruta_json = "Pokemons/pokemon.json" ruta_file = "Pokemons/pokemons" a = abrir(ruta_file) limpiar(a) cerrar(a) jsonToFilePoke(ruta_json, ruta_file)
def alta_sw(arbol): file = abrir('starwars') nom = input('Ingrese un nombre: ') alt = int(input('Ingrese su altura: ')) peso = int(input('Ingrese su peso: ')) dato = Personaje(nom, alt, peso) insertar_nodo(arbol, dato.nombre) guardar(file, dato) cerrar(file) datos.append([nom, alt, peso])
def extraerDataPersonajes(ruta): '''Devuelve array con los datos y la posición de cada personaje almacenado en el archivo''' archivo = abrir(ruta) array = [] pos = 0 while pos < len(archivo): data_personaje = [leer(archivo, pos), pos] array.append(data_personaje) pos += 1 return array
def busquedaNroPoke(ruta_file, raiz, nro_buscado): '''Devuelve pokemon que haya encontrado con nro de pokedex solicitado''' pokemon = None encontrado = busquedaCampo(raiz, nro_buscado, 0) if encontrado: indice = encontrado.info[1] archivo = abrir(ruta_file) pokemon = leer(archivo, indice) cerrar(archivo) return pokemon
def consultaPersonaje(arbol, buscado, ruta_archivo): archivo = abrir(ruta_archivo) indice = obtenerIndice(arbol, buscado) if indice == -1: print("El personaje buscado no se encuentra") else: personaje = leer(archivo, indice) print("Nombre:", personaje.nombre) print("Altura:", personaje.altura) print("Peso:", personaje.peso) print()
def listaBusquedaTipoArbol(ruta, arbol, tipo): '''Devuelve lista de pokemons del tipo especificado, traidos desde el archivo''' lista = [] indices_pokemon_tipo = [] busqTipos(arbol, tipo, indices_pokemon_tipo) archivo = abrir(ruta) for indice in indices_pokemon_tipo: lista.append(leer(archivo, indice)) cerrar(archivo) return lista
def initArchivoPersonajes(ruta): file_starwars = abrir(ruta) limpiar(file_starwars) personajes = [ 'Chewbacca', 'Darth Vader', 'Yoda', 'Luke Skywalker', 'R2-D2', 'C3PO', 'Obi-Wan Kenobi', 'Boba Fett' ] alturas = [2.14, 2.03, 0.66, 1.75, 1.1, 1.67, 1.82, 1.83] pesos = [200, 136, 17, 73, 0.37, 85.2, 80, 78.2] for i in range(len(personajes)): nuevo_personaje = PersonajeStarWars(personajes[i], alturas[i], pesos[i]) guardar(file_starwars, nuevo_personaje)
def altaPersonaje(arbol, ruta_archivo): """Da de alta un personaje en el archivo y actualiza el arbol""" nombre = input('Ingrese el nombre del personaje: ') altura = float(input('Ingrese la altura del personaje: ')) peso = float(input('Ingrese el peso del personaje: ')) personaje = PersonajeStarWars(nombre, altura, peso) archivo = abrir(ruta_archivo) guardar(archivo, personaje) cerrar(archivo) arbol = generarArbolPersonajesNombre(ruta_archivo) return arbol
def listaPokemonsNombre(ruta_file, raiz, nombre_buscado): '''Devuelve lista de pokemons que haya encontrado por proximidad''' indices_poke_a_obtener_data = [] # En el arbol por nombre, se busca por proximidad, y se devuelve los indices de quienes coincidan obtenerIndicesPorNombre(raiz, nombre_buscado, indices_poke_a_obtener_data) # Por cada indice, se busca en el archivo y trae el objeto Pokemon del susodicho datos_pokemons = [] archivo = abrir(ruta_file) for indice in indices_poke_a_obtener_data: datos_pokemons.append(leer(archivo, indice)) cerrar(archivo) return datos_pokemons
def jsonToFilePoke(ruta_json, ruta_file): '''Extra datos de .json y guarda en archivo, para trabajar con él''' with open(ruta_json, "r") as read_file: pokemons = json.load(read_file) archivo = abrir(ruta_file) for pokemon in pokemons: nombre = pokemon.get("name") nro = pokemon.get("pokedex_number") tipos = obtenerTipos(pokemon) debilidades = obtenerDebilidades(pokemon) nuevo_pokemon = Pokemon(nombre, nro, tipos, debilidades) guardar(archivo, nuevo_pokemon)
def bajaPersonaje(arbol, ruta_archivo): '''La la baja (lógica) de un personaje''' archivo = abrir(ruta_archivo) buscado = input("Nombre del personaje buscado: ") indice = obtenerIndice(arbol, buscado) if indice == -1: print("Personaje no encontrado") else: personaje = leer(archivo, indice) personaje.estado = False modificar(archivo, personaje, indice) cerrar(archivo) print("Personaje dado de baja") arbol = generarArbolPersonajesNombre(ruta_archivo) return arbol
def modificarPersonaje(arbol, ruta_archivo): '''Busca un personaje, de encontrarlo, permite su modificación''' archivo = abrir(ruta_archivo) buscado = input("Nombre del personaje buscado: ") indice = obtenerIndice(arbol, buscado) if indice == -1: print("Personaje no encontrado") else: personaje = leer(archivo, indice) print("1- Nombre:", personaje.nombre) print("2- Altura:", personaje.altura) print("3- Peso:", personaje.peso) opcion = input("Seleccione campo a modificar: ") print() if (opcion in ["1", "2", "3"]): nuevo_valor = input("Nuevo valor: ") if opcion == "1": personaje.nombre = nuevo_valor elif opcion == "2": personaje.altura = float(nuevo_valor) elif opcion == "3": personaje.peso = float(nuevo_valor) modificar(archivo, personaje, indice) cerrar(archivo) arbol = generarArbolPersonajesNombre(ruta_archivo) print("Personaje Guardado") else: print("Opcion seleccionada incorrecta") return arbol
class Personaje(): def __init__(self, nombre, altura, peso): self.nombre = nombre self.altura = altura self.peso = peso arbol = None datos = [['Darth Vader', 1.85, 93], ['Chewbacca', 2.04, 113], ['C-3PO', 1.67, 72], ['Yoda', 0.9, 47], ['Boba Fett', 1.83, 78], ['Han Solo', 1.77, 83], ['Jabba el Hutt', 3.9, 531], ['Darth Maul', 1.78, 74]] # se guarda datos en archivo file = abrir('starwars') for dato in datos: x = Personaje(dato[0], dato[1], dato[2]) guardar(file, x) # a # se inserta nombres en arbol pos = 0 while pos < len(datos): personaje = leer(file, pos) arbol = insertar_nodo(arbol, personaje.nombre, pos) #print(personaje.nombre, 'anadido en la posicion:', pos) pos += 1 cerrar(file) print('Arbol de personajes:')
def baja_sw(arbol): file = abrir('starwars') buscado = input('Ingrese nombre del personaje a dar de baja: ') arbol, x = eliminar_nodo(arbol, buscado) print('Se ha eliminado:', x)
from TDA_Archivo import abrir, leer, cerrar print('EJERCICIO 19') print() class Libro(): def __init__(self, isbn, titulo, autores, editorial, cant): self.isbn = isbn self.titulo = titulo self.autores = autores self.editorial = editorial self.cant = cant file = abrir('libros') # l1 = Libro('123', 'algoritmos', 'autor1;autor2', 'uader', 230) # guardar(file, l1) # l1 = Libro('234', 'algoritmos', 'autor1;autor2;autor3;autor4', 'uader', 230) # guardar(file, l1) # l1 = Libro('567', 'algoritmos', 'nuevo', 'uader', 230) # guardar(file, l1) # l1 = Libro('890', 'algoritmos', 'nuevo', 'uader', 230) # guardar(file, l1) # l1 = Libro('012', 'pyhton', 'nuevo', 'uader', 1000) # guardar(file, l1) # l1 = Libro('033', 'datos', 'nuevo', 'uader', 890) # guardar(file, l1) arbol_isbn = None
class Jedi(): def __init__(self, nombre, especie, año_nacimiento, color_sable, ranking, maestro): self.nombre = nombre self.especie = especie self.año_nacimiento = año_nacimiento self.color_sable = color_sable self.ranking = ranking self.maestro = maestro # a arbol_nombre = None arbol_ranking = None arbol_especie = None file = abrir('jedis') pos = 0 while pos < len(file): jedi = leer(file, pos) arbol_nombre = insertar_nodo(arbol_nombre, jedi[0], pos) arbol_ranking = insertar_nodo(arbol_ranking, jedi[1], pos) arbol_especie = insertar_nodo(arbol_especie , jedi[2], pos) pos += 1 cerrar(file) # lee archivo jedis print('NOMBRE | RANKING | ESPECIE | MAESTRO | COLOR DE SABLE | ORIGEN | AÑO DE NACIMIENTO | ALTURA') arch = abrir('jedis') for i in range(0, len(arch)): print(leer(arch, i)) cerrar(arch)
['Pidgeotto', 17, 'normal/volador', 'hielo/roca'], ['Rattata', 19, 'normal', 'lucha'], ['Weedle', 13, 'bicho/veneno', 'fuego/psiquico/volador'], ['Pikachu', 25, 'electrico', 'tierra'], ['Raichu', 26, 'electrico', 'tierra'], ['Meowth', 52, 'normal', 'lucha'], ['Growlithe', 58, 'fuego', 'agua/roca'], ['Tentacool', 72, 'agua/veneno', 'psiquico/electrico'], ['Weepinbell', 70, 'planta/veneno', 'fuego/volador/hielo']] arbol = None arbol_nombre = None arbol_numero = None arbol_tipo = None file = abrir('pokemon') for poke in datos: x = Pokemon(poke[0], poke[1], poke[2], poke[3]) guardar(file, x) # a pos = 0 while pos < len(datos): poke = leer(file, pos) arbol = insertar_nodo( arbol, [poke.nombre, poke.numero, poke.tipo, poke.debilidad], pos) arbol_nombre = insertar_nodo(arbol_nombre, poke.nombre, pos) arbol_numero = insertar_nodo(arbol_numero, poke.numero, pos) arbol_tipo = insertar_nodo(arbol_tipo, poke.tipo, pos) pos += 1 cerrar(file)