예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
def initFilePokemon():
    ruta_json = "Pokemons/pokemon.json"
    ruta_file = "Pokemons/pokemons"

    a = abrir(ruta_file)
    limpiar(a)
    cerrar(a)

    jsonToFilePoke(ruta_json, ruta_file)
예제 #4
0
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])
예제 #5
0
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
예제 #6
0
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
예제 #7
0
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()
예제 #8
0
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
예제 #9
0
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)
예제 #10
0
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
예제 #11
0
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
예제 #12
0
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)
예제 #13
0
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
예제 #14
0
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
예제 #15
0
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:')
예제 #16
0
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)
예제 #17
0
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
예제 #18
0
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)
예제 #19
0
         ['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)