Manejo archivos en-python ejm program

8

Click here to load reader

Transcript of Manejo archivos en-python ejm program

Page 1: Manejo archivos en-python ejm program

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:

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”.

Quedan dos días para el certamen

Estoy seco para programar en Python

Porque voy a todas las ayudantías

Page 2: Manejo archivos en-python ejm program

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:

Page 3: Manejo archivos en-python ejm program

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.

Page 4: Manejo archivos en-python ejm program

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).

Page 5: Manejo archivos en-python ejm program

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á:

Page 6: Manejo archivos en-python ejm program

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.

Page 7: Manejo archivos en-python ejm program

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

Page 8: Manejo archivos en-python ejm program

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.