Hola a todos,

Bueno, les escribo porque tengo una duda con un archivo csv que quiero
analizar. Creo que mi problema es principalmente que soy novato y desconozco
algunos trucos de iteración. Bueno, vamos al problema.

Tengo un archivo de texto con la siguiente info (lo adjunto (archivo.txt)):

1 GABRIEL

1 VICTOR

1 CARLOS

2 DAMIAN

2 MARTIN

3 JUAN

4 JOSE

4 PEDRO


 Básicamente lo que quiero hacer es crear una lista para cada número
(primera columna), que contenga todos los nombres que coinciden con este
número, es decir:

lista1 = ['GABRIEL', 'VICTOR', 'CARLOS']

lista2 = ['DAMIAN', 'MARTIN']

lista3 = ['JUAN']

lista4 = ['JOSE', 'PEDRO']


 He escrito un script.py (lo adjunto):


#!/usr/bin/python
import csv
f = open(str("archivo.txt"), "r")
f_read = csv.reader(f, delimiter="\t")

next_id = ""
for row in f_read:
    num_id = row[0]
    nomb_id = row[1]
    if (num_id != next_id):
        nomb_id_list = []
        nomb_id_list.append(nomb_id.rstrip("\n"))
        next_id = num_id

    else:
        nomb_id_list.append(nomb_id.rstrip("\n"))
    print nomb_id_list

 Pero lo que obtengo es una lista para cada línea. Entonces creo que el
problema está en dónde poner el “print”, creo que me esta faltando algún
bucle más, o no sé. Seguramente esto será una tontería para ustedes.

 Bueno, espero que puedan ayudarme,

 Saludos

 Gabriel
1       GABRIEL
1       VICTOR
1       CARLOS
2       DAMIAN
2       MARTIN
3       JUAN
4       JOSE
4       PEDRO
#!/usr/bin/python
import csv
f = open(str("archivo.txt"), "r")
f_read = csv.reader(f, delimiter="\t")

next_id = ""
for row in f_read:
	num_id = row[0]
	nomb_id = row[1]
	if (num_id != next_id):
		nomb_id_list = []
		nomb_id_list.append(nomb_id.rstrip("\n"))
		next_id = num_id

	else:
		nomb_id_list.append(nomb_id.rstrip("\n"))
	print nomb_id_list


_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a