fbpx

Consulta para mejorar el código- Lección 11 ejercicios propuestos, ejercicio 2

  • Consulta para mejorar el código- Lección 11 ejercicios propuestos, ejercicio 2

    Posted by Leandro Martin Villafuerte on 2 julio, 2020 en 3:18 pm

    Buenas tardes compañeros, estaba haciendo los ejercicios propuestos y no se me ocurre una forma de hacerlo en menos líneas porque tengo que definir variables para cada instancia de la clase Paciente que creo. Hay alguna forma de hacerlo mejor?

    import pacientes,pickle
    with open("pacientes.txt",encoding="utf-8") as file:
    x = file.readlines(1)
    y = x[0].splitlines()
    z = y[0].split(sep=";")
    id_1 = pacientes.Paciente(int(z[0]),z[1],z[2],int(z[3]),z[4])
    x = file.readlines(2)
    y = x[0].splitlines()
    z = y[0].split(sep=";")
    id_2 = pacientes.Paciente(int(z[0]),z[1],z[2],int(z[3]),z[4])
    x = file.readlines(3)
    y = x[0].splitlines()
    z = y[0].split(sep=";")
    id_3 = pacientes.Paciente(int(z[0]),z[1],z[2],int(z[3]),z[4])
    x = file.readlines(4)
    y = x[0].splitlines()
    z = y[0].split(sep=";")
    id_4 = pacientes.Paciente(int(z[0]),z[1],z[2],int(z[3]),z[4])
    x = file.readlines(5)
    y = x[0].splitlines()
    z = y[0].split(sep=";")
    id_5 = pacientes.Paciente(int(z[0]),z[1],z[2],int(z[3]),z[4])
    data = {
    "id_1":id_1._asdict(),
    "id_2":id_2._asdict(),
    "id_3":id_3._asdict(),
    "id_4":id_4._asdict(),
    "id_5":id_5._asdict()
    }
    Lucas Lucyk respondido 3 años, 9 meses 2 Miembros · 1 Responde
  • 1 Responde
  • Lucas Lucyk

    Moderador
    2 julio, 2020 en 4:28 pm

    Puedes leer todas las lineas almacenándolas en un iterable:
    lineas = file.readlines()

    Luego iteras con un for, separas con split y guardas los datos devueltos:
    for linea in lineas:
    _id, nombre, apellido, edad, diabetico = linea.replace(“\n”, “”).split(“;”)

    Y puedes dentro del mismo for, crear los objetos Paciente y guardarlos en el diccionario data:
    data[_id] = pacientes.Paciente(int(_id), …)

    Luego simplemente haces el pickle.dump del diccionario data.

Inicia sesión para responder.

Start of Discussion
0 de 0 respuestas Junio 2018
Ahora