SlideShare a Scribd company logo
1 of 25
PYTHON Lección No. 6 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
AGENDA ,[object Object],[object Object]
RECOMENDACIONES ,[object Object],[object Object],[object Object],[object Object]
Creación, carga y lectura de archivos de texto   (1/8) Python cuenta con una clase llamada file que nos permite crear, escribir y leer  datos de un archivo de texto. Para crear un objeto de la clase file debemos utilizar la función open. Cuando llamamos a dicha función le pasamos como primer parámetro el nombre del  archivo de texto y el modo de apertura del mismo: open(nombre del archivo,modo)  Si el archivo de texto se encuentra en la misma carpeta que nuestro programa  no necesitamos indicar el path (camino). Los modos de apertura del archivo de  texto pueden ser:  ,[object Object],[object Object],[object Object],[object Object]
Creación, carga y lectura de archivos de texto   (2/8) Creación de un archivo de texto El siguiente algoritmo crea en disco un archivo de texto llamado 'datos.txt' y no  graba datos. Si queremos luego de ejecutar el programa podemos verificar la  existencia del archivo en la misma carpeta donde almacenamos nuestro programa. Cuando lo grabamos el archivo fuente en Python debemos darle un nombre al  programa (por ejemplo texto1.py) def creaciontxt(): archi=open('datos.txt','w') archi.close() creaciontxt() Creamos una función llamada creaciontxt donde primero llamamos a la función open  pasando como parámetros el nombre del archivo de texto a crear y el modo de apertura  ('w'). La función open retorna la referencia del objeto file. Luego llamamos al método  close de la clase file. Si luego queremos ver si se a creado el archivo de textos podemos  hacerlo desde algún explorador de archivos, en la carpeta donde se encuentra nuestro  programa en Python veremos un archivo llamado 'datos.txt' con un tamaño de 0 bytes.
Creación, carga y lectura de archivos de texto   (3/8) Grabación de líneas en el archivo de texto def creartxt(): archi=open('datos.txt','w') archi.close() def grabartxt(): archi=open('datos.txt','a') archi.write('Linea 1') archi.write('Linea 2') archi.write('Linea 3') archi.close() creartxt() grabartxt()
Creación, carga y lectura de archivos de texto   (4/8) La función creartxt es similar al ejemplo anterior, y la función grabartxt tiene por  objetivo abrir el archivo en modo de agregado. Cada vez que grabamos un string  en el archivo de texto insertamos un salto de línea ''. Finalmente liberamos el  archivo llamando al método close. Para ver el contenido de nuestro archivo de texto debemos utilizar un editor de  texto (bloc de notas o el mismo entorno del Idle nos puede servir para ver el  contenido de un archivo txt)
Creación, carga y lectura de archivos de texto   (5/8) Lectura línea a línea de un archivo de texto La clase file tiene un método llamado readline() que retorna toda una línea del  archivo de texto y deja posicionado el puntero de archivo en la siguiente línea.  Cuando llega al final del archivo readline retorna un string vacío.
Creación, carga y lectura de archivos de texto   (6/8) Luego de abrir el archivo para lectura procedemos a leer la primer línea:  archi=open('datos.txt','r') linea=archi.readline() El while se repite mientras el método readline() no retorne un string vacío. Dentro  del while procedemos a imprimir la línea que acabamos de leer y leemos la  siguiente (el método readline() retorna el contenido de toda la línea inclusive el  salto de línea ):  while linea!="": print linea linea=archi.readline()
Creación, carga y lectura de archivos de texto   (7/8) Podemos leer todo el contenido de un archivo de texto y almacenarlo en una lista  (esto tiene sentido si el archivo de texto no es muy grande):
Creación, carga y lectura de archivos de texto   (8/8) Utilizamos el método readlines() en lugar de readline(). El método readlines()  retorna una lista con cada línea del archivo de texto. Recordemos que podemos procesar luego cada elemento de la lista recorriéndola  con una estructura repetitiva: def leertxtenlista(): archi=open('datos.txt','r') lineas=archi.readlines() for li in lineas: print li archi.close()
Captura de excepciones   (1/11) Cuando nuestra aplicación genera un error que Python no puede resolver  podemos disponer un código que se ejecute para dichas situaciones. Errores como tratar de abrir un archivo que no existe, acceder a un elemento  de una lista que no existe, dividir por cero etc. genera un error que hace que  nuestro programa se detenga y no continúe su ejecución. Pero con Python  podemos prever estas situaciones y definir un algoritmo que se ejecutará  excepcionalmente cuando ocurra dicho error. Si ejecutamos el siguiente código el programa se detendrá informándonos que  se produjo un error y no puede continuar: y=0  x=10/y  print 'esta linea nunca se ejecuta'
Captura de excepciones   (2/11) Utilizando excepciones podemos capturar el error y continuar la ejecución del programa:  y=0  try:  x=10/y  except ZeroDivisionError:  print 'No existe la division por cero'  print 'Esta línea si se ejecuta'  La estructura try/except requiere que indiquemos el tipo de excepción a capturar, en  este caso cuando se trata de dividir por cero Python genera una excepción llamada  ZeroDivisionError. Para capturar dicha excepción debemos disponerla seguido de la  palabra clave except. Si se produce la excepción se ejecutan las instrucciones que dispongamos en las  líneas siguientes al except.
Captura de excepciones   (3/11) Cuando se captura una excepción el programa no se detiene y continua con las instrucciones siguientes al bloque try/except. Veamos otro ejemplo de intentar acceder a un elemento que no existe en una lista:  lista1=['juan','ana','carlos']  try:  print lista1[5]  except IndexError:  print 'Intenta acceder a un elemento no existente a la lista'  lista1 almacena 3 elementos y tratamos de acceder al de la posición 5. Python en esta  situación genera una excepción de tipo IndexError, como disponemos el acceso dentro  de la construcción try/except y captura el tipo de excepción IndexError el programa no se  detiene y ejecuta la instrucción seguida de la línea except IndexError.
Captura de excepciones   (4/11) Un tema de aplicación muy común donde se utilizan las excepciones es con el tratamiento de archivos, hay muchas situaciones que pueden generar excepciones en estos casos como puede ser que no se pueda abrir un archivo porque no existe, no lo pueda crear porque la unidad de almacenamiento está llena, el archivo se encuentra bloqueado por otro programa etc. El código para crear, grabar y leer un archivo capturando las excepciones queda de la siguiente manera:
Captura de excepciones   (5/11) La excepción cumple un doble cometido en estas situaciones, primero mostramos  mensajes que nosotros definimos y no los que Python muestra por defecto cuando  se genera un error y por otro lado podemos continuar con la ejecución de nuestro  algoritmo sin que se detenga. Podemos disponer varias capturas de excepciones para un bloque try: lista1=['juan','ana','carlos'] try:  print lista1[0] z=10/0 except IndexError: print 'Intenta acceder a un elemento no existente a la lista' except ZeroDivisionError: print 'Division por cero no permitida'
Captura de excepciones   (6/11) En este bloque try capturamos las excepciones de tipo: IndexError y ZeroDivisionError. Como podemos ver la que se dispara es la de ZeroDivisionError. Pero podemos generar el otro tipo de excepción modificando la línea de impresión del elemento de la lista:  print lista1[5]  Si hacemos este cambio se ejecuta la sección seguida a 'except IndexError:'.  Una vez disparada dicha excepción no continua con las instrucciones del bloque  del try, es decir no generará la excepción de división por cero, pero si continuará  con el flujo del algoritmo.
Captura de excepciones   (7/11) Si no queremos tratar los errores en forma independiente podemos agrupar excepciones:  lista1=['juan','ana','carlos'] try:  print lista1[0] z=10/0 except (IndexError,ZeroDivisionError): print 'Se produjo un error' Debemos indicar entre paréntesis todas las excepciones a capturar y como se  procede con ellas, en este caso solo se muestra un mensaje 'Se produjo un error'.
Captura de excepciones   (8/11) Otra parte opcional de un bloque try es la del else. Este bloque se ejecuta si no se produce la excepción:  lista1=['juan','ana','carlos'] try:  print lista1[0] z=10/5 except (IndexError,ZeroDivisionError): print 'Se produjo un error' else: print z Este programa muestra el primer elemento de la lista, luego procede a inicializar  la variable z con el valor 10/5 y seguidamente ejecuta la sección del else ya que  no se a generado excepciones.  Podemos tratar de imprimir una componente que no exista de la lista y veremos  que no se ejecuta el bloque del else.
Captura de excepciones   (9/11) Hemos visto que podemos capturar distintas excepciones en forma independiente:  except IndexError: print 'Intenta acceder a un elemento no existente a la lista' except ZeroDivisionError: print 'Division por cero no permitida' En forma conjunta:  except (IndexError,ZeroDivisionError): print 'Se produjo un error'
Captura de excepciones   (10/11) Inclusive Python nos permite disponer un bloque try except para la captura de cualquier tipo de excepción (si bien esto no es lo más recomendable ya que es difícil emprender una acción para todos los tipos de errores que pueden generarse):  lista1=['juan','ana','carlos'] try:  print lista1[0] z=10/0 except: print 'Se produjo un error'
Captura de excepciones   (11/11) Otra sección que puede tener un bloque try except es finally. finally permite disponer un bloque de código que se ejecutará siempre, indistintamente se produzca o no la excepción. El objetivo de esta sección es generalmente utilizado para liberar recursos como puede ser cerrar la conexión con una base de datos o cerrar un archivo. try:  z=10/0 print 'Esto no se ejecuta' except: print 'Se produjo un error' finally: print 'Siempre se ejecuta'
Problema resuelto Definir una diccionario donde se debe almacenar los nombres de frutas como clave  y su precio como valor. Tratar de acceder a una clave inexistente y capturar la  excepción KeyError que se produce en estos casos. frutas={'naranjas':1.5,'manzanas':2.3,'peras':1.5} try:  print frutas['sandias']  except KeyError: print 'No existe dicha fruta'
BIBLIOGRAFÍA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 

More Related Content

What's hot

What's hot (16)

Python básico I
Python básico IPython básico I
Python básico I
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4
 
Desarrollar un módulo para Visuse
Desarrollar un módulo para VisuseDesarrollar un módulo para Visuse
Desarrollar un módulo para Visuse
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)
 
Lab excepciones propias
Lab excepciones propiasLab excepciones propias
Lab excepciones propias
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
manual-batch-desde-0
manual-batch-desde-0manual-batch-desde-0
manual-batch-desde-0
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Comandos de java
Comandos de javaComandos de java
Comandos de java
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
Examen 2 s,o,
Examen 2 s,o,Examen 2 s,o,
Examen 2 s,o,
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3
 
Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
 

Similar to Python06

JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar informaciónJAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar informaciónUniversidad Santo Tomás
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptxSelTrejo
 
Excepciones
ExcepcionesExcepciones
Excepcionesale8819
 
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosUnidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosAmado Arcaya
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++mauro0210
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3Wally IG
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en javajent46
 
Excepciones
ExcepcionesExcepciones
Excepcionesrilara
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVAmellcv
 
Manejo archivos en-python ejm program
Manejo archivos en-python ejm programManejo archivos en-python ejm program
Manejo archivos en-python ejm programDaniel Arevalo
 

Similar to Python06 (20)

JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar informaciónJAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
Unidad 3 ficheros
Unidad 3 ficherosUnidad 3 ficheros
Unidad 3 ficheros
 
Progra
PrograProgra
Progra
 
Archivos en C
Archivos en CArchivos en C
Archivos en C
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptx
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetosUnidad 7 conceptos Avanzados en la Programacion orientado a objetos
Unidad 7 conceptos Avanzados en la Programacion orientado a objetos
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Java stream
Java streamJava stream
Java stream
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Manejo archivos en-python ejm program
Manejo archivos en-python ejm programManejo archivos en-python ejm program
Manejo archivos en-python ejm program
 

More from Victor Pando

Análisis del Sector Metalmecánica
Análisis del Sector MetalmecánicaAnálisis del Sector Metalmecánica
Análisis del Sector MetalmecánicaVictor Pando
 
Video y Multimedia
Video y MultimediaVideo y Multimedia
Video y MultimediaVictor Pando
 
Panorama General de Open Office 3.0
Panorama General de Open Office 3.0Panorama General de Open Office 3.0
Panorama General de Open Office 3.0Victor Pando
 
Lección No. 1 de Python
Lección No. 1 de PythonLección No. 1 de Python
Lección No. 1 de PythonVictor Pando
 
Curso Básico de Windows XP
Curso Básico de Windows XPCurso Básico de Windows XP
Curso Básico de Windows XPVictor Pando
 
Tecnología Bluetooth
Tecnología BluetoothTecnología Bluetooth
Tecnología BluetoothVictor Pando
 
Redes WiFi 821.11 a vs. 802.11b
Redes WiFi 821.11 a vs. 802.11bRedes WiFi 821.11 a vs. 802.11b
Redes WiFi 821.11 a vs. 802.11bVictor Pando
 
Administración de Sistemas de Información
Administración de Sistemas de InformaciónAdministración de Sistemas de Información
Administración de Sistemas de InformaciónVictor Pando
 
Introducción al WAP
Introducción al WAPIntroducción al WAP
Introducción al WAPVictor Pando
 
Estado del Arte de Hardware y Software para Ingeniería Civil
Estado del Arte de Hardware y Software para Ingeniería CivilEstado del Arte de Hardware y Software para Ingeniería Civil
Estado del Arte de Hardware y Software para Ingeniería CivilVictor Pando
 

More from Victor Pando (15)

Análisis del Sector Metalmecánica
Análisis del Sector MetalmecánicaAnálisis del Sector Metalmecánica
Análisis del Sector Metalmecánica
 
Linux02
Linux02Linux02
Linux02
 
Python05
Python05Python05
Python05
 
Python04
Python04Python04
Python04
 
Python03
Python03Python03
Python03
 
Video y Multimedia
Video y MultimediaVideo y Multimedia
Video y Multimedia
 
Panorama General de Open Office 3.0
Panorama General de Open Office 3.0Panorama General de Open Office 3.0
Panorama General de Open Office 3.0
 
Python02
Python02Python02
Python02
 
Lección No. 1 de Python
Lección No. 1 de PythonLección No. 1 de Python
Lección No. 1 de Python
 
Curso Básico de Windows XP
Curso Básico de Windows XPCurso Básico de Windows XP
Curso Básico de Windows XP
 
Tecnología Bluetooth
Tecnología BluetoothTecnología Bluetooth
Tecnología Bluetooth
 
Redes WiFi 821.11 a vs. 802.11b
Redes WiFi 821.11 a vs. 802.11bRedes WiFi 821.11 a vs. 802.11b
Redes WiFi 821.11 a vs. 802.11b
 
Administración de Sistemas de Información
Administración de Sistemas de InformaciónAdministración de Sistemas de Información
Administración de Sistemas de Información
 
Introducción al WAP
Introducción al WAPIntroducción al WAP
Introducción al WAP
 
Estado del Arte de Hardware y Software para Ingeniería Civil
Estado del Arte de Hardware y Software para Ingeniería CivilEstado del Arte de Hardware y Software para Ingeniería Civil
Estado del Arte de Hardware y Software para Ingeniería Civil
 

Recently uploaded

DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 

Recently uploaded (20)

Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 

Python06

  • 1. PYTHON Lección No. 6 M.Sc. Victor Pando Beltrán [email_address] http://www.civil-uancv.pe/aulavirtual
  • 2.
  • 3.
  • 4.
  • 5. Creación, carga y lectura de archivos de texto (2/8) Creación de un archivo de texto El siguiente algoritmo crea en disco un archivo de texto llamado 'datos.txt' y no graba datos. Si queremos luego de ejecutar el programa podemos verificar la existencia del archivo en la misma carpeta donde almacenamos nuestro programa. Cuando lo grabamos el archivo fuente en Python debemos darle un nombre al programa (por ejemplo texto1.py) def creaciontxt(): archi=open('datos.txt','w') archi.close() creaciontxt() Creamos una función llamada creaciontxt donde primero llamamos a la función open pasando como parámetros el nombre del archivo de texto a crear y el modo de apertura ('w'). La función open retorna la referencia del objeto file. Luego llamamos al método close de la clase file. Si luego queremos ver si se a creado el archivo de textos podemos hacerlo desde algún explorador de archivos, en la carpeta donde se encuentra nuestro programa en Python veremos un archivo llamado 'datos.txt' con un tamaño de 0 bytes.
  • 6. Creación, carga y lectura de archivos de texto (3/8) Grabación de líneas en el archivo de texto def creartxt(): archi=open('datos.txt','w') archi.close() def grabartxt(): archi=open('datos.txt','a') archi.write('Linea 1') archi.write('Linea 2') archi.write('Linea 3') archi.close() creartxt() grabartxt()
  • 7. Creación, carga y lectura de archivos de texto (4/8) La función creartxt es similar al ejemplo anterior, y la función grabartxt tiene por objetivo abrir el archivo en modo de agregado. Cada vez que grabamos un string en el archivo de texto insertamos un salto de línea ''. Finalmente liberamos el archivo llamando al método close. Para ver el contenido de nuestro archivo de texto debemos utilizar un editor de texto (bloc de notas o el mismo entorno del Idle nos puede servir para ver el contenido de un archivo txt)
  • 8. Creación, carga y lectura de archivos de texto (5/8) Lectura línea a línea de un archivo de texto La clase file tiene un método llamado readline() que retorna toda una línea del archivo de texto y deja posicionado el puntero de archivo en la siguiente línea. Cuando llega al final del archivo readline retorna un string vacío.
  • 9. Creación, carga y lectura de archivos de texto (6/8) Luego de abrir el archivo para lectura procedemos a leer la primer línea: archi=open('datos.txt','r') linea=archi.readline() El while se repite mientras el método readline() no retorne un string vacío. Dentro del while procedemos a imprimir la línea que acabamos de leer y leemos la siguiente (el método readline() retorna el contenido de toda la línea inclusive el salto de línea ): while linea!="": print linea linea=archi.readline()
  • 10. Creación, carga y lectura de archivos de texto (7/8) Podemos leer todo el contenido de un archivo de texto y almacenarlo en una lista (esto tiene sentido si el archivo de texto no es muy grande):
  • 11. Creación, carga y lectura de archivos de texto (8/8) Utilizamos el método readlines() en lugar de readline(). El método readlines() retorna una lista con cada línea del archivo de texto. Recordemos que podemos procesar luego cada elemento de la lista recorriéndola con una estructura repetitiva: def leertxtenlista(): archi=open('datos.txt','r') lineas=archi.readlines() for li in lineas: print li archi.close()
  • 12. Captura de excepciones (1/11) Cuando nuestra aplicación genera un error que Python no puede resolver podemos disponer un código que se ejecute para dichas situaciones. Errores como tratar de abrir un archivo que no existe, acceder a un elemento de una lista que no existe, dividir por cero etc. genera un error que hace que nuestro programa se detenga y no continúe su ejecución. Pero con Python podemos prever estas situaciones y definir un algoritmo que se ejecutará excepcionalmente cuando ocurra dicho error. Si ejecutamos el siguiente código el programa se detendrá informándonos que se produjo un error y no puede continuar: y=0 x=10/y print 'esta linea nunca se ejecuta'
  • 13. Captura de excepciones (2/11) Utilizando excepciones podemos capturar el error y continuar la ejecución del programa: y=0 try: x=10/y except ZeroDivisionError: print 'No existe la division por cero' print 'Esta línea si se ejecuta' La estructura try/except requiere que indiquemos el tipo de excepción a capturar, en este caso cuando se trata de dividir por cero Python genera una excepción llamada ZeroDivisionError. Para capturar dicha excepción debemos disponerla seguido de la palabra clave except. Si se produce la excepción se ejecutan las instrucciones que dispongamos en las líneas siguientes al except.
  • 14. Captura de excepciones (3/11) Cuando se captura una excepción el programa no se detiene y continua con las instrucciones siguientes al bloque try/except. Veamos otro ejemplo de intentar acceder a un elemento que no existe en una lista: lista1=['juan','ana','carlos'] try: print lista1[5] except IndexError: print 'Intenta acceder a un elemento no existente a la lista' lista1 almacena 3 elementos y tratamos de acceder al de la posición 5. Python en esta situación genera una excepción de tipo IndexError, como disponemos el acceso dentro de la construcción try/except y captura el tipo de excepción IndexError el programa no se detiene y ejecuta la instrucción seguida de la línea except IndexError.
  • 15. Captura de excepciones (4/11) Un tema de aplicación muy común donde se utilizan las excepciones es con el tratamiento de archivos, hay muchas situaciones que pueden generar excepciones en estos casos como puede ser que no se pueda abrir un archivo porque no existe, no lo pueda crear porque la unidad de almacenamiento está llena, el archivo se encuentra bloqueado por otro programa etc. El código para crear, grabar y leer un archivo capturando las excepciones queda de la siguiente manera:
  • 16. Captura de excepciones (5/11) La excepción cumple un doble cometido en estas situaciones, primero mostramos mensajes que nosotros definimos y no los que Python muestra por defecto cuando se genera un error y por otro lado podemos continuar con la ejecución de nuestro algoritmo sin que se detenga. Podemos disponer varias capturas de excepciones para un bloque try: lista1=['juan','ana','carlos'] try: print lista1[0] z=10/0 except IndexError: print 'Intenta acceder a un elemento no existente a la lista' except ZeroDivisionError: print 'Division por cero no permitida'
  • 17. Captura de excepciones (6/11) En este bloque try capturamos las excepciones de tipo: IndexError y ZeroDivisionError. Como podemos ver la que se dispara es la de ZeroDivisionError. Pero podemos generar el otro tipo de excepción modificando la línea de impresión del elemento de la lista: print lista1[5] Si hacemos este cambio se ejecuta la sección seguida a 'except IndexError:'. Una vez disparada dicha excepción no continua con las instrucciones del bloque del try, es decir no generará la excepción de división por cero, pero si continuará con el flujo del algoritmo.
  • 18. Captura de excepciones (7/11) Si no queremos tratar los errores en forma independiente podemos agrupar excepciones: lista1=['juan','ana','carlos'] try: print lista1[0] z=10/0 except (IndexError,ZeroDivisionError): print 'Se produjo un error' Debemos indicar entre paréntesis todas las excepciones a capturar y como se procede con ellas, en este caso solo se muestra un mensaje 'Se produjo un error'.
  • 19. Captura de excepciones (8/11) Otra parte opcional de un bloque try es la del else. Este bloque se ejecuta si no se produce la excepción: lista1=['juan','ana','carlos'] try: print lista1[0] z=10/5 except (IndexError,ZeroDivisionError): print 'Se produjo un error' else: print z Este programa muestra el primer elemento de la lista, luego procede a inicializar la variable z con el valor 10/5 y seguidamente ejecuta la sección del else ya que no se a generado excepciones. Podemos tratar de imprimir una componente que no exista de la lista y veremos que no se ejecuta el bloque del else.
  • 20. Captura de excepciones (9/11) Hemos visto que podemos capturar distintas excepciones en forma independiente: except IndexError: print 'Intenta acceder a un elemento no existente a la lista' except ZeroDivisionError: print 'Division por cero no permitida' En forma conjunta: except (IndexError,ZeroDivisionError): print 'Se produjo un error'
  • 21. Captura de excepciones (10/11) Inclusive Python nos permite disponer un bloque try except para la captura de cualquier tipo de excepción (si bien esto no es lo más recomendable ya que es difícil emprender una acción para todos los tipos de errores que pueden generarse): lista1=['juan','ana','carlos'] try: print lista1[0] z=10/0 except: print 'Se produjo un error'
  • 22. Captura de excepciones (11/11) Otra sección que puede tener un bloque try except es finally. finally permite disponer un bloque de código que se ejecutará siempre, indistintamente se produzca o no la excepción. El objetivo de esta sección es generalmente utilizado para liberar recursos como puede ser cerrar la conexión con una base de datos o cerrar un archivo. try: z=10/0 print 'Esto no se ejecuta' except: print 'Se produjo un error' finally: print 'Siempre se ejecuta'
  • 23. Problema resuelto Definir una diccionario donde se debe almacenar los nombres de frutas como clave y su precio como valor. Tratar de acceder a una clave inexistente y capturar la excepción KeyError que se produce en estos casos. frutas={'naranjas':1.5,'manzanas':2.3,'peras':1.5} try: print frutas['sandias'] except KeyError: print 'No existe dicha fruta'
  • 24.
  • 25.