Skip to content

Commit a397ae4

Browse files
authored
Merge pull request #1 from samulanda/Text-files-and-dictionaries
Text files and dictionaries
2 parents a95652d + 9c777ae commit a397ae4

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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

Comments
 (0)