Skip to main content
Curso Python 3.5

Curso Python – tema 13 – Trabajando con ficheros en Python

El modo con el que se abrirá el fichero dependerá de la finalidad que tenga abrir dicho archivo

Python nos permite también trabajar con ficheros de dos formas diferentes. Uno de ellos sería utilizando el módulo os, que nos facilita el trabajo con todo el sistema de ficheros y directorios a nivel de Sistema Operativo. La segunda forma es más simple, nos permite trabajar con ficheros manipulando su lectura y escritura a nivel de aplicación, tratando cada archivo como un objeto.

 

Abriendo ficheros

Cuando trabajamos con ficheros, solo es necesario recurrir a la función integrada open(), con la cual abriremos nuestro fichero.

Esta función recibirá dos parámetros

  • La ruta del archivo que se desea abrir
  • El modo en el cuál será abierto el fichero

El modo con el que se abrirá el fichero dependerá de la finalidad que tenga abrir dicho archivo. Podemos ver un listado de los diferentes modos de apertura de ficheros posibles en la siguiente tabla

Comando

Modo de apertura

Ubicación del puntero

r

Solo lectura

Al inicio del archivo

rb

Solo lectura en modo binario

Al inicio del archivo

r+

Lectura y escritura

Al inicio del archivo

rb+

Lectura y escritura en modo binario

Al inicio del archivo

W

Solo escritura. Sobreescribe el archivo si existe. Crea el archivo si no existe

Al inicio del archivo

Wb

Solo escritura en modo binario. Sobreescribe el archivo si existe. Crea el archivo si no existe

Al inicio del archivo

w+

Escritura y lectura. Sobreescribe el archivo si existe. Crea el archivo si no existe

Al inicio del archivo

wb+

Escritura y lectura en modo binario. Sobreescribe el archivo si existe. Crea el archivo si no existe

Al inicio del archivo

a

Añadido (agregar contenido). Crea el archivo si éste no existe

Si el archivo existe, al final de éste. Si el archivo no existe, al comienzo

ab

Añadido en modo binario (agregar contenido). Crea el archivo si éste no existe

Si el archivo existe, al final de éste. Si el archivo no existe, al comienzo

a+

Añadido (agregar contenido) y lectura. Crea el archivo si éste no existe.

Si el archivo existe, al final de éste. Si el archivo no existe, al comienzo

ab+

Añadido (agregar contenido) y lectura en modo binario. Crea el archivo si éste no existe

Si el archivo existe, al final de éste. Si el archivo no existe, al comienzo

 

 

Métodos del objeto File

Entre todos los métodos, en este momento, vamos a tratar aquellos que son más frecuentes pero, podéis consultar todos los posibles desde la página oficial de python.

Para cada uno de ellos vamos a realizar un ejemplo con un fichero ejemplo.txt que hemos creado previamente.

Entre los métodos más frecuentes encontramos:

Método seek(byte) -> mueve el puntero hacia el byte indicado

Método read([bytes]) -> lee todo el contenido de un fichero, si se le pasa la longitud de bytes, leerá sólo hasta la longitud indicada.

Método readline([bytes]) -> Lee la línea indicada del archivo, en caso de no indicar, leerá la primera línea.

Método readlines() -> lee todas las líneas de un fichero

Método tell() -> Retorna la posición actual del puntero

Método write(string) -> Escribe la cadena dentro del fichero. La añadirá donde esté situado el cursor, por defecto al final.

Método writelines(lista) -> Escribe la secuencia de elementos uno por línea.

Método close() -> cierra el archivo

 

Propiedades del objeto file

Además de los diferentes métodos a los que tenemos acceso desde el objeto File, también podemos acceder a diferentes propiedades con las que conocer más datos del objeto que estamos utilizando.

Se pueden acceder a las siguientes propiedades:

  • Closed -> devolverá True si el archivo se ha cerrado, en caso contrario devolverá False.
  • Mode -> devuelve el modo en el que fue abierto el fichero
  • Name -> devuelve el nombre del fichero
  • Encoding -> devuelve la codificación de caracteres de un archivo

 

Podemos ver un ejemplo

 

Utilizando la estructura with

La estructura with es una estructura de control cuya funcionalidad es comprobar que el objeto devuelto por la expresión ejecutará un código de inicialización y preparación. Se utiliza para comprobar que el objeto soporta el protocolo de gestión de contextos (Context Management Protocol).

Su sintaxis sería así:

 

Vamos a explicar cómo lo utilizaríamos con los objetos File para verlo más claro.

Un ejemplo sería:

 

Además, otra de las ventajas de utilizar esta estructura es que nos cerrará automáticamente el objeto sin necesidad de tener que llamar al método para cerrarlo manualmente. Además, nos permite otorgar un alias a nuestro objeto, haciendo mucho más rápido el acceso al mismo.

Con esto terminamos por ahora, os dejo con los ejercicios para que practiquéis un poco con ello.

 

Problemas propuestos

Ejercicio 1

Crear un programa que abra un fichero en modo lectura y escritura, si no existe lo creará, y añadir la frase ‘Este es el ejercicio 1’.

Ver

 

Ejercicio 2

Crear un programa que abra el fichero editado anteriormente y muestre el estado del fichero, el modo en el que fue abierto, el nombre y la codificación de caracteres del mismo.

Ver

 

Ejercicio 3

Realizar un programa que realice los ejercicios 1 y 2 utilizando la estructura with.

Ver

 

Además tenéis la lista completa de ejercicios en nuestro repositorio en github.

Con esto acabamos el treceavo capítulo de nuestro curso de python 3.5. Si tienen cualquier duda relacionada con el contenido explicada en este capítulo, pueden exponerla en sus comentarios y le ayudaremos a resolverla lo antes posible. Nos vemos en el siguiente capítulo donde mostraremos algunos módulos más de la biblioteca de python

<- Anterior Volver al índice Siguiente ->

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *