Automatizar tareas en OneDrive usando un Script Python y conexión remota

Tiempo de lectura: 2 minutos

Hoy vamos a aprender cómo podemos automatizar tareas sobre un archivo en OneDrive usando un Script de Python y conexión remota.

Nubes y carretera - Pexels

1. Configura tu archivo de Excel en OneDrive

  1. Sube el archivo a OneDrive:
    • Guarda tu archivo de Excel en tu carpeta de OneDrive.
    • Asegúrate de saber la ubicación exacta del archivo (puedes obtener la URL del archivo en la web de OneDrive).
  2. Asegúrate de tener el archivo listo:
    • Crea una tabla en tu hoja de Excel (igual que en la solución anterior) con columnas como Fecha y Cantidad.

2. Instala Python y las bibliotecas necesarias

Si no tienes Python instalado, descárgalo desde python.org.

Después, instala las bibliotecas necesarias ejecutando estos comandos en tu terminal o línea de comandos:

pip install pandas openpyxl onedrivesdk

3. Crea un script en Python

Usaremos la biblioteca onedrivesdk para conectarnos a OneDrive y pandas para editar el archivo Excel.

Aquí tienes un ejemplo de script:

import pandas as pd
from datetime import datetime
from onedrivesdk import OneDriveClient, AuthProvider, HttpProvider, FileSystemTokenBackend

# Configura tu cliente de OneDrive
redirect_uri = 'http://localhost:8080/'
client_secret = 'TU_CLIENT_SECRET'
client_id = 'TU_CLIENT_ID'
scopes = ['wl.signin', 'wl.offline_access', 'onedrive.readwrite']

http_provider = HttpProvider()
auth_provider = AuthProvider(
    http_provider=http_provider,
    client_id=client_id,
    client_secret=client_secret,
    auth_server_url="https://login.live.com/oauth20_authorize.srf",
    auth_token_url="https://login.live.com/oauth20_token.srf",
    redirect_uri=redirect_uri,
    scopes=scopes,
)
client = OneDriveClient("https://api.onedrive.com/v1.0/", auth_provider, http_provider)
auth_provider.authenticate()

# Ruta del archivo en OneDrive
onedrive_file_path = "/Documents/MisDatos.xlsx"

# Descarga el archivo Excel
file_item = client.item(drive="me", path=onedrive_file_path).get()
with open("temp.xlsx", "wb") as local_file:
    client.item(drive="me", id=file_item.id).download(local_file)

# Abre el archivo Excel y añade la nueva fila
df = pd.read_excel("temp.xlsx", sheet_name="Hoja1")
nueva_fila = {"Fecha": datetime.now().strftime("%Y-%m-%d"), "Cantidad": 100}  # Ajusta cantidad
df = df.append(nueva_fila, ignore_index=True)

# Guarda los cambios y vuelve a subir el archivo
df.to_excel("temp.xlsx", index=False)
with open("temp.xlsx", "rb") as updated_file:
    client.item(drive="me", id=file_item.id).upload(updated_file)

print("Cantidad añadida con éxito.")

4. Automación con tareas programadas

  1. Guarda el script como actualizar_excel.py.
  2. Usa una herramienta gratuita para programar su ejecución semanalmente:
    • En Windows, usa el Programador de tareas.
    • En Linux/Mac, usa cron.

Ejemplo de cron (para ejecutar cada lunes a las 9:00 AM):

0 9 * * 1 python3 /ruta/a/actualizar_excel.py

Deja un comentario