Antonio Fernández
Troyano

Crear, leer y escribir ficheros con Python para dummies

En esta entrada pasaremos a comprender como realizar tareas básicas como crear, leer y escribir ficheros a través en Python de manera sencilla.

En programas de ofimática como Microsoft Word, Excel o Powerpoint, las acciones de abrir o guardar un fichero son fáciles e intuitivas.
En Python también, si bien debemos aprender los principales códigos que nos permiten ejecutar estas tareas cotidianas

Ficheros y rutas de ficheros

Explicación de ruta de fichero

Tal y como vemos en la imagen superior, para acceder a un fichero necesitamos:
a) La ruta del fichero (absoluta o relativa, ya lo veremos más adelante)
b) El nombre del archivo con la extensión del mismo

Backslash (Windows) y Forwardslash (Linux y OS X)

En sistema operativo Windows, se utiliza el backslash (\) para las rutas del sistema. Sin embargo, en Linux y en OS X se utiliza el forwardslash (/).

Entonces, ¿cómo podemos programar código en python que se pueda utilizar indistintamente en Windows, Linux y OS X? mediante las librería «os» – Miscellaneous operating system interfaces (documentación https://docs.python.org/2/library/os.html )

import os

os.path.join("C:\\Users\\Antonio","Documents","archivo.pdf")
Ejemplo ruta con Miscellaneous operating system interfaces

Si lo hubiéramos ejecutado en Linux, el resultado hubiera sido el mismo pero con la forwardslash (/).
Por otro lado, si te preguntas el motivo de que aparezca doble backslash (\\) es porque en programación existe el concepto de «caracter de escape», ver más en el enlace.

Otro ejemplo que podemos plantear sería en el caso de disponer una lista con nombres de ficheros y queremos añadir la ruta absoluta de los mismos:

Añadir ruta absoluta a lista de ficheros

Directorio de trabajo actual – os.getcwd()

Si queremos conocer la ubicación actual en la que estamos trabajando la librería «os» nos devuelve el resultado:

directorio actual python

Si, además queremos movernos a otra carpeta, podemos hacer uso del comando os.chdir (change directory):

Cambiar directorio en python

Ruta relativa y ruta absoluta

Simplemente conocer que existen dos maneras de indicarle a python (y a cualquier otro lenguaje de programación) la ruta de un archivo/carpeta:

  • Ruta absoluta: siempre comienza con la carpeta root (C:, D:, etc)
  • Ruta relativa: la ruta comienza en la carpeta donde está guardado el programa actual
  • Así mismo existen ciertos shortcuts que te facilitan el acceso a las rutas: el dot(.) que significa «directorio actual» o el dot-dot(..) que significa «directorio raíz»
Explicación de ruta absoluta y relativa

Si tenemos una ruta relativa y queremos:

  • Convertirla en ruta absoluta: os.path.abspath(«ruta relativa»)
  • Comprobar si es una ruta absoluta: os.path.isabs(«ruta»)
Ejemplo modulo os.path

Por otro lado, si tenemos una ruta absoluta de un fichero y queremos separar el nombre del fichero y de la ruta absoluta hasta el fichero podemos hacerlo de dos maneras:

  • Utilizando el comando os.path.basename(«ruta») y os.path.dirname(«ruta») que nos separa el nombre del fichero y la ruta respectivamente
  • Utilizando el comando os.path.split(«ruta») que nos devuelve el resultado en una tupla
os.path modulo para separar ruta de fichero

Creación de carpetas y estructuras de carpetas – os.makedirs()

A la hora de crear carpetas o estructuras de carpetas utilizaremos el comando os.makedirs:

Creación de una carpeta con python

Nota: podemos crear una estructura de carpetas, por ejemplo: os.makedirs(«C:\\Prueba1\\Prueba2») y nos creará la carpeta Prueba2 dentro de la carpeta Prueba1 que, si no existe, también la creará.

Listado de ficheros en una carpeta y tamaño de los ficheros

Por último, si queremos conocer el listado de archivos que hay en una capeta utilizaremos el comando os.listdir(«ruta»).

Si además, queremos conocer el tamaño de un fichero, utilizaremos el comando os.path.getsize(«ruta del fichero»)

listar archivos y conocer tamaño de ficheros

Lectura y escritura de ficheros

Después de toda la chapa sobre gestión de las rutas de ficheros, rutas relativas, absolutas etc, vamos por fin a conocer cómo podemos leer y crear ficheros en python.
La secuencia se estructura de la siguiente manera:

  • Abrir archivo con la función open()
  • Leer y escribir en el archivo, con las funciones read() y write()
  • Cerrar el fichero con close()

Abrir y leer el contenido de un fichero

A través del comando open podemos abrir y leer un fichero. En este caso hemos creado un fichero llamado «Fichero1.txt» y vamos a abrir y leer el contenido:

abrir y leer fichero python

Se puede utilizar el comando readlines para obtener una lista que separe cada salto de línea de texto (\n). Adicionalmente hemos utilizado el parámetro encoding para poder leer archivos en español:

Leer archivo con varias líneas python

Escribir en ficheros

Ahora vamos a escribir una línea más en el fichero «Cuento.txt» que tenía abierto, mediante la función write():

Escribir en fichero con python

¿Qué ha ocurrido? pues que al abrir el archivo con la función open(), por defecto, se abre SOLO con permisos de lectura (reading – r). Es necesario abrir el archivo en modo escritura (writing – w) o append – a.

ATENCIÓN: si se abre un archivo en modo writing (w) se borra TODO el contenido del fichero. Por otro lado, si el fichero no existía, en modo writing (w) o en modo append (a) creará el fichero.

Escritura fichero python a

Y ahora sí que sí hemos podido añadir «Otra línea más» al fichero.

¡Comparte!

Facebook
Twitter
LinkedIn
WhatsApp

Deja un comentario

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