5. Manejo de ficheros
En el momento que hablamos del manejo de ficheros, nos referimos al manejo y almacenamiento de información.
Python nos ofrece tres formas para manejar la información dentro de una estructura programada. Dentro de ellas podemos mencionar:
- Listas
- Tuplas
- Diccionarios
Estas tres estructuras se van a almacenar dentro de las variables que nosotros le indiquemos. Al trabajar con listas, tuplas y diccionarios, vamos a poder almacenar más información dentro de una variable. Esto permitirá una mayor velocidad a la hora de su ejecución y el hecho de que podremos modificar la información.
Tuplas
Una tupla es una estructura de datos que se utiliza para almacenar una secuencia ordenada de elementos. Es similar a una lista, pero a diferencia de las listas, las tuplas son inmutables, lo que significa que una vez que se crean, no se pueden modificar, agregar o eliminar elementos.
misNumeros = (1, 2, 3, 4, 5)
print(misNumeros[0])
print(misNumeros[2])
for elemento in misNumeros:
print(elemento)
for indice, valor in enumerate(misNumeros):
print(f"El elemento en el indice: {indice} es: {valor}")
Cualquier estructura de almacenamiento, se puede conocer el valor en una posición en específico (se le conoce como índice) y se puede ir uno por uno por medio de un ciclo.
Una tupla nos permite visualizar la información que contiene. Podríamos pensar en el software de una biblioteca, cuyo objetivo es informar al usuario si el libro está disponible en la institución y en qué área se encuentra. Evidentemente, el usuario no podrá modificar dicha información. En una tupla, podemos añadir todo tipo de información, como cadenas de caracteres ('Hola'), números enteros (15), y números decimales (3.14). La representación de una tupla sería la siguiente."
libros = ("Cementerio de mascotas", "It", "La cupula", "Hush")
for elemento in libros:
print(elemento)
Esta Tupla contiene valores de tipo String y cada valor está separado por una coma(,)
La información dentro de una tupla está ligada a una posición (se le conoce como índice o index en inglés). La primera posición es cero (0), y a partir de ahí comienza el conteo.
Si tomamos como base nuestro código anterior, tendríamos:
- Índice 0 -
"Cementerio de mascotas" - Índice 1 -
"It" - Índice 2 -
"La cupula" - Índice 3 -
"Hush"
Para poder visualizar la información en un punto específico, debemos colocar [Posición] junto a la variable. Por ejemplo, si queremos acceder al segundo elemento de la tupla llamada 'tupla_datos', usamos 'tupla_datos[1]'
libros = ("Cementerio de mascotas", "It", "La cupula", "Hush")
print(libros[0])
print(libros[2])
Otra de las opciones que tenemos es poder visualizar la información dentro de un rango establecido, por ejemplo podrías solicitar ver la información de la posición 0 a la posición 2. En la pantalla podremos observar la información que se encuentra en la posición 0 y posición 1.
libros = ("Cementerio de mascotas", "It", "La cupula", "Hush")
print(libros[0:2])
Hasta el momento hemos averiguado la información basándonos en la posición del archivo. Con el siguiente código averiguaremos la posición haciendo uso del nombre del archivo.
libros = ("Cementerio de mascotas", "It", "La cupula", "Hush")
print(libros.index("La cupula"))
Para saber el tamaño de nuestra tupla debemos utilizar el comando len. En otros lenguajes de programación la palabra len es un poco más grande y es length y significa lo mismo.
libros = ("Cementerio de mascotas", "It", "La cupula", "Hush")
print(len(libros))
Ejercicio - Búsqueda de un archivo dentro de una Tupla
-
Lo primero que hemos creado es una variable que contendrá nuestra tupla, la cual almacena una serie de libros.
-
Creamos la variable 'book', la cual estará almacenando la información que el usuario digite. Por medio del condicional 'if', estamos verificando si la información de 'book' se encuentra dentro de la tupla 'Libros'.
-
Si efectivamente está, le indicamos al usuario que sí está presente; en caso contrario, le indicamos que ese libro no está en la lista.
libros = ("Cementerio de mascotas", "It", "La cupula", "Hush")
book = input("Digite el nombre del libro a buscar: ")
book = book.capitalize()
if book in libros:
print("El libro", book, "se encuentra dentro de la institucion")
else:
print("No tenemos el libro")
Lista
-
Una Lista va a funcionar similar que una Tupla donde podremos buscar y visualizar la información almacenada dentro de ella. También nos permitirá poder añadir, modificar y eliminar la información dentro de la Lista. Para la estructura de una Lista debemos utilizar paréntesis cuadrados [ ].
-
Las listas, podríamos utilizarlas en el registro de las matrículas de un colegio donde, pueden existir tantas variantes. Como los estudiantes matriculados, Los estudiantes que se han graduado, Los estudiantes que han solicitado traslado a otra institución, Posiblemente la persona encargada de introducir la información se equivoque en algún nombre.
-
Vamos a trabajar basándonos en una Lista de estudiantes Matriculados.
estMatri = ["David", "Salomon", "Juan"]
Podemos observar la implementación de los paréntesis [ ]
-
Como podemos ver nuestra Lista se compone de 3 nombres.
-
Para poder agregar un nombre al final de la lista debemos utilizar el comando append
-
Colocamos la lista dentro de un print para que una vez la información añadida podamos visualizarla.
estMatri = ["David", "Salomon", "Juan"]
estMatri.append("Pedro")
print(estMatri)
-
Los elementos de una lista se pueden eliminar de varias formas. Aprenderemos a utilizar el comando pop( ).
-
Si utilizamos el comando pop( ) sin parámetros estaremos eliminando el último valor que se encuentre en la lista
estMatri = ["David", "Salomon", "Juan"]
estMatri.pop()
print(estMatri)
Si conocemos el índice de lo que deseamos eliminar también podemos colocarlo. Si deseamos eliminar la información que está en el índice 3 debemos escribir el número dentro de pop(3)
estMatri = ["David", "Salomon", "Juan", "Pedro", "Santiago"]
estMatri.pop(3)
print(estMatri)
Otra forma de eliminar un archivo de una lista es sabiendo el nombre del elemento que deseamos eliminar y debemos utilizar el comando remove.
estMatri = ["David", "Salomon", "Juan", "Pedro", "Santiago"]
estMatri.remove("Juan")
print(estMatri)
Diccionario
Es una estructura de datos que se utiliza para almacenar pares de clave-valor.
Las claves deben ser únicas e inmutables, lo que significa que no pueden cambiar una vez que se han asignado. Los valores asociados a las claves pueden ser de cualquier tipo de datos: números, cadenas, listas, tuplas, otros diccionarios, etc.
mi_diccionario = {
1 : "blue",
2 : "red",
3 : "green",
4 : "black",
}
print(mi_diccionario[1])
print(mi_diccionario[3])
- Los números 1, 2 y 3 representan la palabra clave y blue, red, green, black representan el valor.
- Al imprimir 1 se despliega blue, al imprimir 3 se imprime green.
Los diccionarios van a estar ligados de una palabra clave y de un valor. Esta estructura debe estar dentro de un corchetes { } y separados por dos puntos :
Los diccionarios son útiles para la creación un traductor de palabras o para la implementación de credenciales con múltiples usuarios.
mi_diccionario = {
1 : "blue",
2 : "red",
3 : "green",
4 : "black",
}
- Se debe abrir y cerrar el corchete.
- En la clave pueden ir valores string, valores enteros.
Para agregar más elementos debemos de seguir la siguiente estructura diccionario[“amarrillo”] = “yellow”
mi_diccionario = {"azul": "blue", "rojo": "red", "verde": "green"}
mi_diccionario["amarillo"] = "yellow"
print(mi_diccionario)
Si deseamos modificar uno de los valores del diccionario podemos utilizar la misma estructura, solo debemos escribir la llave dentro de los paréntesis cuadrados y después del igual el valor a modificar.
mi_diccionario = {"azul": "blue", "rojo": "red", "verde": "green"}
mi_diccionario["rojo"] = "rojillo"
print(mi_diccionario)
También podríamos eliminar una clave y su valor con el comando del
mi_diccionario = {"azul": "blue", "rojo": "red", "verde": "green"}
del mi_diccionario["azul"]
print(mi_diccionario)
Para averiguar si una clave existe dentro del diccionario, podemos utilizar el comando in el cual nos estará mostrando una respuesta booleana (true - false)
mi_diccionario = {"azul": "blue", "rojo": "red", "verde": "green"}
print("azul" in mi_diccionario)
Para poder visualizar todas las claves que se encuentren dentro de nuestro diccionario, podemos utilizar el método keys.
mi_diccionario = {"azul": "blue", "rojo": "red", "verde": "green"}
print(mi_diccionario.keys())
Para poder visualizar todos los valores que se encuentren dentro de nuestro diccionario, podemos utilizar el método values.
mi_diccionario = {"azul": "blue", "rojo": "red", "verde": "green"}
print(mi_diccionario.values())