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

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

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:

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:

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

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»

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

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

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:

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

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:

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:

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():

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

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