Anuncios


En esta nueva serie de tutoriales les enseñaremos a como automatizar tareas usando el lenguaje de programacion Python, que les puede ser util al momento de realizar actividades como crear documentos, u ordenarlos, escribiendo programas con pocas lineas de codigo en Python que pueden hacer esto de manera automática. Empezaremos conociendo como interacturar con los archivos y carpetas del sistema operativo usando el modulo os.

Las variables son una buena opción para almacenar datos mientras se ejecuta un programa, dando una sencillez alta y veloz. Pero puede existir momentos en los que es necesario almacenar información de un tipo de manera persistente y sin tener que recurrir a base de datos u otros tipos de almacenamiento de información.

Para este caso podemos crear archivos para almacenar datos, y en Python podemos hacerlo de una manera rápida y como es común, con pocas lineas de código.

Nota

En estos ejemplos los directorios se usan como en el entorno de windows y linux, revisa y adaptalos a tu sistema operativo.

Archivos y directorios

Un archivo tiene 2 propiedades principales: un nombre de archivo y un directorio. El directorio especifica la ubicación del archivo en la computadora, por ejemplo, si la computadora esta en una computadora con sistema operativo windows, y el nombre del archivo es programa.exe, la ruta o directorio del archivo seria C:\users\usuario\documentos.

Continuando, las carpetas en un directorio, pueden contener archivos u otras carpetas, como ejemplo la siguiente imagen:

En windows, para separar las rutas o directorios se usan los backslashes (\) como separador entre los nombres de carpetas. En OS X y linux ocupamos el forward slash (/) para separar.

El modulo os

En python contamos con el modulo os, el cual nos ofrece todas las herramientas para interactuar con el sistema operativo, como: crear carpetas, crear o abrir archivos, listas carpetas, etc. Este modulo ya viene incluido en el lenguaje Python, así que no es necesario instalarlo.

En todos los ejemplos se utiliza el modulo os, por lo tanto siempre debe estar importado, esto se realiza de la siguiente manera:

import os

Obtener el directorio actual

Aveces es necesario obtener el directorio en el que nos encontremos, esto podría ser para un caso, por ejemplo, en el que tengamos que consumir archivos como imágenes.

Para obtener el directorio actual utilizamos el modulo os.

import os
os.getcwd()

‘C:\\Python34’

Cambiar de directorios

Para cambiar de directorio en python usando el modulo os, usamos el método “chdir” al cual le pasamos la ruta a la que queremos cambiarnos.

os.chdir('C:\\Windows\\System32')
os.getcwd()

‘C:\\Windows\\System32’

Rutas absolutas y rutas relativas

Una ruta absoluta es aquella que proviene de la carpeta raíz.

Una ruta relativa es aquella que se origina desde la carpeta donde se ejecuta el programa, es decir la ruta actua.

Crear carpetas

Con el modulo os es posible la creación de carpetas, esto con el meto “makedirs()”, por ejemplo:

import os
os.makedirs('C:\\delicious\\walnut\\waffles')

Nombre base y directorio

En casos específicos es necesario dividir una ruta de archivo, en la ruta y el nombre del archivo, podemos realizarlo usando los métodos “basename” y “dirname”

path = 'C:\\Windows\\System32\\calc.exe'
os.path.basename(path)

‘calc.exe’

Anuncios
os.path.dirname(path)

‘C:\\Windows\\System32’

Si necesita dividir la ruta en sus carpetas y archivo, realiza lo siguiente:

calcFilePath = 'C:\\Windows\\System32\\calc.exe'
os.path.split(calcFilePath)

(‘C:\\Windows\\System32’, ‘calc.exe’)

Eliminar carpetas

Para eliminar una carpeta se realiza de una forma similar:

os.rmdir("Musica/favoritos/actual"))

Tamaño de archivos y carpetas

Usando el modulo os es posible obtener el peso o tamaño de las carpetas o archivos en general, se realiza llamando al método “os.path.getsize”, de este modo:

os.path.getsize('C:\\Windows\\System32\\calc.exe')

776192

Saber si una ruta es valida o no

Saber si una ruta es correcta o no, puede ahorrarnos muchos dolores de cabeza, por ejemplo si le pedimos al usuario que suba un documento, es necesario verificar si la ruta que nos da del documento existe o no. Usando el módulo os podemos realizarlo de la siguiente manera:

os.path.exists('C:\\Windows')
os.path.exists('C:\\some_made_up_folder')
os.path.isdir('C:\\Windows\\System32')
os.path.isfile('C:\\Windows\\System32')
os.path.isdir('C:\\Windows\\System32\\calc.exe')
os.path.isfile('C:\\Windows\\System32\\calc.exe')
  • True
  • False
  • True
  • False
  • False
  • True

Abrir archivos

Para abrir un archivo en python se usa la función “open”, donde se le pasa como texto la ruta indicada para el archivo a abrir, esta puede ser una ruta absoluta o relativa. La función open retorna un objeto de tipo File.

Para practicar, crea en tu computadora un archivo llamado “datos.txt” he introduce datos de texto en el, ejecuta el siguiente código para abrirlo desde python:

file= open('C:\\Users\\carpetas\\datos.txt')

si usas linux o mac os, es:

file= open('C:/Users/carpetas/datos.txt')

Recuerda reemplazar la ruta en el ejemplo con la ruta correcta de su sistema.

Leer contenido de archivos

Para leer el contenido de los archivos que previamente hemos leído, usamos el método “read”, se realiza de la siguiente manera:

datos = file.read()
print(datos)

Al ejecutar este ejemplo leeremos la información del archivo he imprimiremos su contenido en pantalla.

SI el archivo contiene texto que se encuentra en muchas lineas, podemos leerlos usando “readlines”:

sonnetFile = open('sonnet29.txt')
sonnetFile.readlines()

Escribiendo archivos

Escribir archivos es de una manera similar, primero pasamos una ruta de archivo a la función open, si el archivo que queremos escribir no existe, automaticamente se creara para escribir información en el, es importante recalcar que se le pasara un valor mas a la función open, en este caso es el premiso para escribir información. El ejemplo es el siguiente:

baconFile = open('bacon.txt', 'w')
baconFile.write('Hello world!\n')
baconFile.close()
baconFile = open('bacon.txt', 'a')
baconFile.write('Bacon is not a vegetable.')
baconFile.close()
baconFile = open('bacon.txt')
content = baconFile.read()
baconFile.close()
print(content)

Otras funciones del modulo os, son las siguientes:

DescripciónMétodo
Saber si se puede acceder a un archivo o directorioos.access(path, modo_de_acceso)
Conocer el directorio actualos.getcwd()
Cambiar de directorio de trabajoos.chdir(nuevo_path)
Cambiar al directorio de trabajo raízos.chroot()
Cambiar los permisos de un archivo o directorioos.chmod(path, permisos)
Cambiar el propietario de un archivo o directorioos.chown(path, permisos)
Crear un directorioos.mkdir(path[, modo])
Crear directorios recursivamenteos.mkdirs(path[, modo])
Eliminar un archivoos.remove(path)
Eliminar un directorioos.rmdir(path)
Eliminar directorios recursivamenteos.removedirs(path)
Renombrar un archivoos.rename(actual, nuevo)
Crear un enlace simbólicoos.symlink(path, nombre_destino)

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.