You are on page 1of 8

Esteban Rodríguez

Ayudante IWI-121 1 Semestre 2011


Universidad Técnica Federico Santa María

ARCHIVOS EN PYTHON
Trabajar con archivos significa: tomar datos desde un archivo ( en este caso un” .txt” creado en
block de notas), leerlos y trabajar con ellos.

No tiene nada de distinto de lo que utilizamos en procesamiento de texto, simplemente abrimos


el archivo, realizamos algún tipo de operación y luego lo cerramos.

Lo primero que debemos saber es que al trabajar y abrir un archivo, SIEMPRE debemos cerrarlo
una vez que hayamos terminado de trabajar con él.

Debemos tener en consideración lo siguiente:

 Accedemos al archivo de manera secuencial: se leen las línea en orden ( de arriba hacia
abajo) desde que abrimos el archivo.
 Podemos abrir el archivo en forma de Lectura(r): Sólo para leerlo y trabajar con su
contenido o como Escritura (w): Para escribir nueva información sobre él.
 Podemos volver al inicio de un archivo mientras lo estamos procesando

Para comprender mejor como funciona un archivo veremos el siguiente ejemplo:

Creemos un archivo llamado “EJEMPLOTEBAN.txt” En block de Notas ( Inicio -> Todos Los
Programas -> Accesorios -> Blcok de Notas ) con el siguiente contenido:

Quedan dos días para el certamen


Estoy seco para programar en Python
Porque voy a todas las ayudantías

Lo primero que haremos será crear un programa que nos permita Leer los datos dentro de
“EJEMPLOTEBAN.txt” y mostrarlos por pantalla.

Utilizaremos el código Nombre = open(“NombreArchivo.txt”,”Forma en que se abrirá”)

 El Nombre puede ser un Nombre cualquiera, perro, gato, archivo, hola, etc.….
 “Nombre Archivo.txt” debe ser el nombre real del archivo en el PC, en este caso,
“EJEMPLOTEBAN.txt”
 “Forma en que se abrirá” se refiere a si el archivo se abrirá como Lectura,Escritura o
Modificación , si se abre en modo Lectura colocamos “r” y si se abrirá en modo Escritura
colocamos “w”, y si Agregaremos algo al final del texto, agregamos “a”.
Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

 NOTA: Supongo que “r” viene de read ( leer), “w” de write ( escribir) y “a” de add(agregar),
si no fuera así, por lo menos sirve para acordarse de cual es cual.

El código para mostrar en pantalla el texto incluido en el .txt quedaría de la siguiente


manera

Ocuparemos el comando NombreArchivo.readLine() para leer una línea del archivo de


texto, a continuación se presenta el código para leer SOLO UNA LINEA DEL archivo de
texto.

En pantalla se mostrará lo siguiente

Si nos fijamos bien, luego de que imprime la primera línea nos genera un salto de línea,
esto lo podemos eliminar ocupando El código .strip() de la siguiente forma:

Mostrando en pantalla:

Como podemos darnos cuenta, imprimir una sola línea del archivo no nos sirve mucho, debemos
encontrar una forma de mostrar el archivo completo. Para eso utilizaremos un for pero esta vez no
usaremos for i in range (Donde la variable i variaba entre dos números enteros), esta vez
ocuparemos for i in NombreArchivo.xreadlines() (Donde i va a tomar el valor de la primera línea,
luego de la segunda y así sucesivamente hasta que el archivo termine)

Para mostrar el archivo completo por pantalla basta con este código:
Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

Ocupamos el código strip() nuevamente para eliminar los saltos de línea, y en pantalla nos
mostrará lo siguiente:

Ya vimos lo básico, como leer datos de un archivo ahora compliquemos un poco el asunto viendo
como agregar una línea nueva al texto anterior.

Antes que todo, debemos saber que al abrir un archivo en modo Escritura ( Agregando una “w” en
el segundo parámetro) El archivo se abre en blanco, o sea, perdemos todo su contenido anterior)
es por esto que en vez de agregar una “w” agregaremos una “a” Para agregar texto alfínal del
archivo conservando los datos anteriores.

El código es bien sencillo. Basándonos en el texto de EJEMPLOTEBAN.txt, agregaremos una frase


cualquiera la cual digitaremos por teclado:

Explicación:

 Definimos el archivo salida con “a” para agregar texto al final


 Código salida.write() para Escribir/Imprimir una frase al final del texto
 Cerramos el archivo
 Para poder imprimirlo debeos abrirlo nuevamente pero ahora como modo lectura “r”
 Luego imprimimos con el código entrada.read() que se encarga de leer todo el archivo
 Cerramos el archivo.
Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

En esta oportunidad Ingrese la frase “PORQUE NO ME DA FLOJERA” y por pantalla nos mostrará lo
siguiente:

 LES RECOMIENDO QUE NO SÓLO MIREN LO QUE SE VE EN PANTALLA, SI NO QUE VAYAN


ABRIENDO EL ARCHIVO .TXT PARA QUE COMPRUEBEN Y SE CONVENZAN DE QUE
REALMENTE CAMBIA.

Ya vimos como leer un archivo existente y como agregar texto al final del archivo existente, ahora
veremos cómo CREAR un archivo que no existe.

Utilizaremos la misma estructura anterior pero esta vez en vez de colocar “r” o “a” pondremos
“w”, y el nombre del archivo puede ser cualquiera EXCEPTO UNO QUE YA EXISTA.

Y el archivo en block de notas se crea y queda de la siguiente manera:

Compliquemos algo más las cosas. Creemos un programa que cuente la cantidad de caracteres
que posee el archivo de texto anterior (“nuevos.txt”), si los contamos manualmente, deberían ser
exactamente 42 (Contando los espacios).
Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

EL código sería así:

 Abrimos el archivo de entrada


 Definimos variable Suma como 0
 Le vamos dando valores de las líneas a la variable i
 Suma será suma más a longitud de la línea
 El proceso se repite hasta que no queden mas líneas que contar
 Imprimimos suma
 Cerramos el archivo.

En pantalla nos mostrará:

Ahora, creemos un programa que nos cuente cuantas PALABRAS tiene el archivo

Para eso utilizaremos el código “Split()” que nos separa en una matriz, palabras dependiendo de
un patrón, como las palabras son separadas por un espacio, utilizaremos Split(“ “).

 Si quisiéramos separar palabras por signos por ejemplo “%” debemos ocupar Split(“%”)

Debemos entender, que la matriz se generará por línea, por lo tanto también necesitamos una
variable suma que nos registre la suma de palabras por línea.

En pantalla nos mostrará:


Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

Algo más simple: Contar la cantidad de líneas que tiene el archivo de texto: Basta con tener un
contador dentro del for y luego imprimirlo ya que leerá líneas y no realizará la acción, y el for se
ejecutará tantas veces como líneas haya, por lo tanto, el contador aumentará tantas veces como
líneas haya.

En pantalla se mostrará:

 Se deja como ejercicio, hacer que el programa cuenta la cantidad de LETRAS que hay en
un archivo, sin contar espacios

Por último, realizaremos el ejercicio propuesto en la diapositiva 19 del sitio web oficial del ramo.
Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

Analizando el enunciado:

 Debemos calcular los promedios de los alumnos


 Debemos almacenar los datos de los alumnos reprobados en un archivo y los aprobados
en otro

Contamos con este archivo para comenzar a trabajar:

Lo primero que haremos será crear un archivo “borrador.txt” donde almacenaremos los alumnos
de la siguiente manera:

Nombre:Apellido:Promedio

 Debemos abrir el archivo alumnos.txt en modo Lectura


 Debemos crear un archivo borrador.txt
 Mediante un ciclo for y la herramienta Split leemos por línea y separamos en matrices
mediante el signo “:”
 Transformamos los tres últimos en números enteros y calculamos el promedio en una
nueva variable
 Imprimimos en borrador.txt de la forma Nombre:Apellido:Promedio
Esteban Rodríguez
Ayudante IWI-121 1 Semestre 2011
Universidad Técnica Federico Santa María

Ahora que tenemos los promedios calculados y almacenados, debemos:

 Abrir el archivo borrador.txt como Lectura


 Crear dos archivos, uno para reprobados y otro para aprobados
 Si Nota<55, copiar alumno en reprobados
 Si Nota >= 55, copiar alumno en aprobado

Les subiré también el código comentado para que entiendan mejor.

You might also like