Python - Separar archivo en en lineas y luego dividir lineas para hacerlas listas. Python.

 
Vista:

Separar archivo en en lineas y luego dividir lineas para hacerlas listas. Python.

Publicado por Marcos (1 intervención) el 20/06/2019 00:16:30
Hola, buenas. Tengo el siguiente problema, tengo un trabajo para la universidad y la verdad que se me complicó un poco.
Tengo un archivo lleno de información, todo separado por un ; (en total 3 por linea. por ejemplo:
nombre;apellido;edad;ciudad
pedro;gonzalez;25;Lima
jorge;castellin;30;Bogotá

tengo que realizar dos funciones: con una dividir todas las lineas.

entonces tengo esta función:
1
2
3
4
5
6
def leeArchivo(archivo, nombre, apellido, ciudad):
    datos=len(archivo.readline())
    for i in range(datos):
            linea=archivo.readline(i)
            creaListas(linea,nombre,apellido,ciudad)
     return nombre

Con la otra separar en listas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def creaListas(linea, nombre,apellido,ciudad):
    edad=[]
    cont=0
    for j in linea:
        if j!=";" and cont==0:
            nombre+=j
 
        elif j!=";" and cont==1:
            apellido+=j
 
        elif j!=";"and cont==2:
            edad+=j
 
        elif j!=";" and cont==3:
            ciudad+=j
 
        else:
            cont+=1

lo que deseo es que la funcion leeArchivo, me lea el archivo y me entregue linea por linea. Luego que la funcion creaListas me divida los elementos en 3 listas: nombre[],apellido[],ciudad[]. la de edad no la preciso.

Espero que se entienda lo que quiero hacer y lo que hice. filtré con un contador y distinto a un ; porque es donde quiero dividir las listas, justamente sin que se agregue el ;

Quiero que me quede (con el ejemplo del principio):
nombre=[pedro,jorge]
apellido=[gonzalez,castellin]
ciudad=[Lima,Bogota]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jaime
Val: 526
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Separar archivo en en lineas y luego dividir lineas para hacerlas listas. Python.

Publicado por Jaime (136 intervenciones) el 20/06/2019 18:28:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Función que obtiene la información dentro de un archivo txt
# @return un String con la información del archivo.
 
 
def leerArchivo(archivo):
    texto = ""
    with open(archivo, 'rt') as o:
        texto = o.read()
    return texto
 
# Función que separa la información obtenido del archivo
# @return una lista con la información de los archivos
 
 
def datoToList(archivo):
    lista = []
    for t in archivo.split('\n'):
        lista.append(t.split(';'))
    lista.pop()
    return lista
 
#Función que devuelve un diccionario del tipo {'key':[]}
#Recibe 2 listas
def infoToDic(column, datos):
    dicc = {}
    i = 0
    for c in column[i]:
        lis = []
        for l in datos:
            lis.append(l[i])
        dicc[c] = lis
        i += 1
    return dicc
 
text = leerArchivo("columna.txt")
colum = datoToList(text)
text2 = leerArchivo("datos.txt")
datos = datoToList(text2)
d = infoToDic(colum, datos)
print(d)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar