|
| 1 | +# -*- coding: utf-8 -*- |
| 2 | +""" |
| 3 | +Created on Thu Jun 7 14:20:59 2018 |
| 4 | +
|
| 5 | +@author: landazabals |
| 6 | +""" |
| 7 | + |
| 8 | +#Funcion que crea un diccionarioa a partir de un archivo de texto. El archivo contiene nombres de personas y |
| 9 | +#unas cuatro cifras (calificaciones), asociadas a cada uno de ellos. el diccionario que se genera tiene como |
| 10 | +#keys los nombres y los values son las calificaciones |
| 11 | + |
| 12 | +#Function that creates a dictionary from a text file. The file contains names of people and about four digits |
| 13 | +#(qualifications), associated with each of them. the dictionary that is generated has the names as keys and the |
| 14 | +#values are the qualifications |
| 15 | + |
| 16 | +def dic_arch(test_python):#def de funcion que acepta un archivo de texto como entrada, con los nombres de |
| 17 | + #de personas y sus calificaciones en 4 cursos |
| 18 | + archivo= open(test_python, "r")#preparar el archivo para ser leido ("r") |
| 19 | + arch=archivo.readlines()#leer todas las lineas del archivo y colocarlas en una lista |
| 20 | + #Codigo para eliminar los espacios (\n) entre lineas |
| 21 | + lista=[]#lista a llenar con las lineas del archivo de texto sin espacios |
| 22 | + for m in range(0,len(arch)):#m tomando los indices de la lista llenada con las filas del texto, es decir |
| 23 | + #m son el numero de lineas en el texto |
| 24 | + fila=''#cadenas a llenar con los elementos que conforman cada linea. seran las filas de la lista de |
| 25 | + #arriba |
| 26 | + for i in arch[m]:#i toma cada elemento de la linea del texto actual data[m] |
| 27 | + if i!='\n':#solo se toman los elementos distintos de '\n' (que da el espaciado entre lineas) |
| 28 | + fila=fila+i#se va colocando cada elemento a la fila actual |
| 29 | + lista.append(fila)#cada fila terminada se va colocando a la lista |
| 30 | + |
| 31 | + #Codigo para convertir en listas, las filas de la lista generada con las lineas del archivo, que eran |
| 32 | + #cadenas de caracteres |
| 33 | + lista_arch=[]#lista a llenar con las filas en forma de cadena de caracteres en sublistas |
| 34 | + for n in range(0,len(arch)):#n tomando la cantidad de filas en la lista (numero de lineas del archivo) |
| 35 | + fila_list=lista[n].split(',')#convertir la cadena de caracteres en listas, separando sus elementos |
| 36 | + #con las comas que tenian las lineas del archivo |
| 37 | + lista_arch.append(fila_list)#llenado de la lista con las sublistas o filas |
| 38 | + |
| 39 | + lista_nombres=[]#lista a llenar con solo los nombres del archivo |
| 40 | + for l in range(0,len(arch)):#n tomando la cantidad de filas en la lista (numero de lineas del archivo) |
| 41 | + lista_nombres.append(lista_arch[l][0])#llenado de la lista con solo el primer elemento de cada |
| 42 | + #sublista o fila de la lista_arch (nombres de las personas) |
| 43 | + |
| 44 | + lista_1Eval=[]#lista a llenar con la nota sacada por cada persona en la 1era evaluacion |
| 45 | + for l in range(0,len(arch)):#n tomando la cantidad de filas en la lista (numero de lineas del archivo) |
| 46 | + lista_1Eval.append(float(lista_arch[l][1]))#llenado de la lista con solo el 2do elemento de cada |
| 47 | + #sublista o fila de la lista_arch (notas 1er curso) |
| 48 | + |
| 49 | + lista_2Eval=[]#lista a llenar con la nota sacada por cada persona en la 2da evaluacion |
| 50 | + for l in range(0,len(arch)):#n tomando la cantidad de filas en la lista (numero de lineas del archivo) |
| 51 | + lista_2Eval.append(float(lista_arch[l][2]))#llenado de la lista con solo el 3er elemento de cada |
| 52 | + #sublista o fila de la lista_arch (notas 2do curso) |
| 53 | + |
| 54 | + lista_3Eval=[]#lista a llenar con la nota sacada por cada persona en la 3era evaluacion |
| 55 | + for l in range(0,len(arch)):#n tomando la cantidad de filas en la lista (numero de lineas del archivo) |
| 56 | + lista_3Eval.append(float(lista_arch[l][3]))#llenado de la lista con solo el 4to elemento de cada |
| 57 | + #sublista o fila de la lista_arch (notas 3er curso) |
| 58 | + |
| 59 | + lista_4Eval=[]#lista a llenar con la nota sacada por cada persona en la 3era evaluacion |
| 60 | + for l in range(0,len(arch)):#n tomando la cantidad de filas en la lista (numero de lineas del archivo) |
| 61 | + lista_4Eval.append(float(lista_arch[l][4]))#llenado de la lista con solo el 5to elemento de cada |
| 62 | + #sublista o fila de la lista_arch (notas 4to curso) |
| 63 | + |
| 64 | + dic={}#diccionario a llenar de la forma especificada arriba en el titulo |
| 65 | + for n in range(0,len(lista_nombres)):#n son los indices de la lista que contiene los nombres |
| 66 | + dic[lista_nombres[n]]=[lista_1Eval[n],lista_2Eval[n],lista_3Eval[n],lista_4Eval[n]]#llenado de la |
| 67 | + #lista con los keys |
| 68 | + #como los nombres |
| 69 | + #dic[lista_nombres[n]] |
| 70 | + #y sus values: |
| 71 | + #lista_1Eval[n]..... |
| 72 | + #para cada key n |
| 73 | + return(dic) |
| 74 | + |
| 75 | +print(dic_arch('test_python.txt')) |
0 commit comments