La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sesión 17: Archivos. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de.

Presentaciones similares


Presentación del tema: "Sesión 17: Archivos. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de."— Transcripción de la presentación:

1 Sesión 17: Archivos

2 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejercicio Maneras estándar de lectura Lectura y Escritura de archivos Abrir y Cerrar archivos A continuación…

3 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Archivos 3 Archivo close open read write

4 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Archivos 4 Cada sistema de computo usa archivos para guardar cosas. Python facilita la creación y el acceso a archivos. Operaciones básicas: Abrir: open. Cerrar: close. Leer: read. Escribir: write. 4 00110..01011 Archivo fuente Programa Archivo

5 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Abriendo Archivos 5 Abriendo un archivo (open): Para abrir un archivo se emplea la función open. Esta debe ser llamada antes de realizar cualquier procesamiento sobre el archivo (leer o escribir por ejemplo). La función open crea un objeto file el cual puede ser utilizado para llamar otros métodos asociados a este. 5 Sintaxis: file_object = open(file_name [, access_mode][, buffering]) Donde: file_name: Nombre del archivo (String). Access_mode: Determina el modo en el cual el archivo ser abierto (i.e. read, write, append). Para mas informacion consultar el siguiente link.link buffering: Si el valor es fijado a 0 no habrs buffering; por otro lado, si es 1, un line burrefing es realizado mientras se accede al archivo. Si se especifica un valor entero mayor que 1, la accion de buffering es llevada a cabo con el tamaño de buffer indicado; si es negativo, el tamaño del buffer es el default. open

6 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Modos Descripcion wb+ Lscritura y escritura formato binario. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. a Adicionar informacion al final del archivo como solo escritura. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. ab Adicionar informacion al final del archivo como solo escritura formato binario. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. a+ Adicionar informacion al final del archivo como lectura y escritura. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. ab+ Adicionar informacion al final del archivo como lectura y escritura formato binario. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. ModosDescripcion r Solo lectura. Comienza a leer desde el principio del archivo rb Solo lectura formato binario. Comienza a leer desde el principio del archivo. r+ Lectura y escritura. Comienza desde el principio del archivo. rb+ Lectura y escritura formato binario. Comienza desde el principio del archivo. w Solo escritura. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. wb Solo escritura formato binario. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo. w+ Lscritura y escritura. Sobrescribe si el archivo existe, si no existe crea un archivo nuevo.

7 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Cerrando Archivos 7 Cerrando un archivo (close): Función empleada para cerrar un archivo. 7 Sintaxis: file_object.close() close Atributos del objeto file: Una vez que un archivo es abierto se tendrá un objeto file del cual se puede obtener varia información relacionada con el archivo. La siguiente tabla muestra algunos atributos: FunciónDescripción file.closedRetorna True si el archivo es cerrado o falso en otro caso. file.modeRetorna el modo de acceso con el cual fue abierto el archivo. file.nameRetorna el nombre del archivo

8 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 8 Ejemplo sencillo: Función empleada para cerrar un archivo. 8 # archivo Python fo = open("trabalenguas.txt", "r") print("Name of the file: ", fo.name) print("Closed or not: ", fo.closed) Print("Opening mode: ", fo.mode) fo.close() Print("Closed or not: ", fo.closed) trabalenguas.txt Pedro Pablo Perez Pintor pinta puertas Por poco precio para Personas pudientes. open() close() Archivos: file_open_close.py

9 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejercicio Maneras estándar de lectura Lectura y Escritura de archivos Abrir y Cerrar archivos Lectura y Escritura de archivos A continuación…

10 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Leyendo Archivos 10 Leyendo un archivo (read): Este método lee un string desde un archivo abierto. Los string Python pueden tener, además de datos de texto, datos binarios. 10 Sintaxis: file_object.read([count]) Donde: count: Numero de bytes que serán leídos del archivo abierto. read

11 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 11 Ejemplo sencillo: Función empleada para cerrar un archivo. 11 # archivo Python fo = open("trabalenguas.txt", "r") cad = fo.read(6) print(cad) cad = fo.read(25) print(cad) fo.close() trabalenguas.txt Pedro Pablo Perez Pintor pinta puertas Por poco precio para Personas pudientes. Archivos: file_read.py

12 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Escribiendo Archivos 12 Escribiendo un archivo (write): Este método escribe cualquier string (ya sea de datos binarios o solo texto) en un archivo. Este método no agrega el carácter nueva línea (\n) al final del string. 12 Sintaxis: file_object.write(string) Donde: string: string a pasar al archivo write

13 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 13 Ejemplo sencillo: Función empleada para cerrar un archivo. 13 # archivo Python fo = open("trabalenguas 2.txt", "r") cad = input("Digite su nombre: ") fo.write("Hola: ") fo.write(cad) fo.write("\nHasta pronto\n") fo.close() trabalenguas2.txt Archivos: file_write.py

14 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Resumen funciones comunes para acceder a archivos 14 FunciónDescripción open(fn,’w’)fn es un string que representa el nombre del archivo. Crea un archivo para escribir y retorna el file handle. open(fn,’r’)fn es un string que representa el nombre del archivo. Abre un archivo para leer y retorna el file handle. open(fn,’a’)fn es un string que representa el nombre del archivo. Abre un archivo existente para agregarle contenido y retorna el file handle. fn.read()Retorna un string que contiene el contenido del archivo asociado con el file handle fn. fn.readline()Retorna la proxima linea en el archivo asociado con el file handle fn. fn.realines()Retorna una lista donde cada elemento es una linea del archivo asociado con el file handle fn.

15 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Resumen funciones comunes para acceder a archivos 15 FunciónDescripción fn.write(s)Escribe el string s al final del archivo asociado con el file handle fn. fn.writelines(S)S es una secuencia de strings. Escribe cada elemento de S al archivo asociado con el file handle fn. fn.close()Cierra el archivo asociado con el file handle fn.

16 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 16 file = open('names.txt', 'r') for line in file: print(line) file.close() file = open('names.txt', 'w') file.write('Juan\n') file.write('Ana\n') file.close() file = open('names.txt', 'r') for line in file: print(line[:-1]) file.close() file = open('names.txt', 'a') file.write('Clara\n') file.write('Julia\n') file.close() file = open('names.txt', 'r') for line in file: print(line[:-1]) file.close() file = open('names.txt', 'r') for line in file: print(line) file.close() file = open('names.txt', 'w') file.write('Juan\n') file.write('Ana\n') file.close() file = open('names.txt', 'r') for line in file: print(line[:-1]) file.close() file = open('names.txt', 'a') file.write('Clara\n') file.write('Julia\n') file.close() file = open('names.txt', 'r') for line in file: print(line[:-1]) file.close() Imprime: Carlos Pedro Imprime: Juan Ana Imprime: Juan Ana Clara Julia

17 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejercicio Maneras estándar de lectura Lectura y Escritura de archivos Abrir y Cerrar archivos Maneras estándar de lectura A continuación…

18 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Maneras estándar para leer desde un archivo 18 AproximaciónCódigoCuando usarlo Aproximacion readline file = open(filename, 'r') # Read lines until we reach the # place in the file that we want. line = file.readline() while we are not at the place we want: line = file.readline() # Now we have reached the section # of the file we want to process. line = file.readline() while we are not at the end of the section: process the line line = file.readline() flanders_file.close() Cuando se desea procesar solo una parte del archivo.

19 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Maneras estándar para leer desde un archivo 19 AproximaciónCódigoCuando usarlo Aproximacion for line in file file = open(filename, 'r') for line in file: process the line file.close() Cuando se desea procesar cada una de las lineas del archivo, una a la vez. Aproximación read file = open(filename, 'r') contents = file.read() now process contents file.close() Cuando se desea leer el archivo entero y usarlo como un unico string.

20 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Maneras estándar para leer desde un archivo 20 AproximaciónCódigoCuando usarlo Aproximacion readlines file = open(filename, 'r') # Get the contents as a list of strings. contents_list = file.readlines() process contents_list using indexing to access particular lines from the file file.close() Cuando se desea examinar cada linea por indice.

21 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 21 El archivo Flanders.txt contiene el siguiente contenido: In Flanders Fields In Flanders fields the poppies blow Between the crosses, row on row, That mark our place; and in the sky The larks, still bravely singing, fly Scarce heard amid the guns below. We are the Dead. Short days ago We lived, felt dawn, saw sunset glow, Loved and were loved, and now we lie In Flanders fields. Take up our quarrel with the foe: To you from failing hands we throw The torch; be yours to hold it high. If ye break faith with us who die We shall not sleep, though poppies grow In Flanders fields. -John McCrae Flanders.txt Lea el archivo empleando las 4 maneras estándar anteriormente vistas.

22 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 22 Forma 1: Aproximacion readline flanders_filename = "Flanders.txt" flanders_file = open(flanders_filename, 'r') line = flanders_file.readline() while line != '': print(line, end='') line = flanders_file.readline() flanders_file.close() Archivos: file_read_aproach_readline.py

23 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 23 Forma 2: Aproximacion for line in file flanders_filename = "Flanders.txt" flanders_file = open(flanders_filename, 'r') line = flanders_file.readline() for line in flanders_file: print(line, end='') flanders_file.close() Archivos: file_read_aproach_for_line_in_line.py

24 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 24 Forma 3: Aproximacion read flanders_filename = "Flanders.txt" flanders_file = open(flanders_filename, 'r') contenido = flanders_file.read() print(contenido) flanders_file.close() Archivos: file_read_aproach_read.py

25 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejemplo 25 Forma 4: Aproximación readlines flanders_filename = "Flanders.txt" flanders_file = open(flanders_filename, 'r') lines = flanders_file.readlines() for line in lines: print(line, end='') flanders_file.close() Archivos: file_read_aproach_readlines.py

26 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejercicio Maneras estándar de lectura Lectura y Escritura de archivos Abrir y Cerrar archivos Ejercicio A continuación…

27 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de Antioquia Ejercicio 27 Hacer un programa que copie un archivo en otro. El archivo copia tendrá el mismo contenido que el archivo original, sin embargo, todo estará en mayúsculas. El programa también deberá mostrar en pantalla la cantidad de palabras. Use programación modular para ello.


Descargar ppt "Sesión 17: Archivos. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática I Universidad de."

Presentaciones similares


Anuncios Google