Búsqueda de sitios web

20 scripts de Python para automatizar las tareas cotidianas


Como alguien que ha pasado más de una década en el mundo de la programación, aprendí que automatizar tareas repetitivas puede ahorrar una cantidad significativa de tiempo y esfuerzo.

Python, con su sintaxis simple y potentes bibliotecas, es uno de los mejores lenguajes de programación para crear scripts de automatización. Si eres programador o alguien que busca facilitar las tareas diarias, Python tiene herramientas que pueden ayudarte.

En este artículo, compartiré 20 scripts de Python que he usado para automatizar varias tareas. Estos scripts son perfectos para cualquiera que quiera ahorrar tiempo y mejorar la eficiencia en su rutina de trabajo.

1. Cambiar el nombre de archivos de forma masiva

Cambiar el nombre de los archivos uno por uno puede ser una tarea que requiere mucho tiempo, pero con Python puedes automatizarlo fácilmente usando el módulo os.

Aquí hay un script simple que cambia el nombre de varios archivos en una carpeta según un patrón determinado:

import os

def bulk_rename(folder_path, old_name_part, new_name_part):
    for filename in os.listdir(folder_path):
        if old_name_part in filename:
            new_filename = filename.replace(old_name_part, new_name_part)
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))
            print(f"Renamed {filename} to {new_filename}")

folder = '/path/to/your/folder' bulk_rename(folder, 'old_part', 'new_part')

Este script busca archivos que contengan old_name_part en sus nombres y lo reemplaza con new_name_part.

2. Hacer una copia de seguridad de los archivos automáticamente

Todos sabemos lo importante que es realizar copias de seguridad de los archivos con regularidad, y esta tarea se puede automatizar fácilmente utilizando el módulo shutil de Python.

Este script copiará todos los archivos de un directorio a otro con fines de copia de seguridad:

import shutil
import os

def backup_files(src_dir, dest_dir):
    if not os.path.exists(dest_dir):
        os.makedirs(dest_dir)
    for file in os.listdir(src_dir):
        full_file_name = os.path.join(src_dir, file)
        if os.path.isfile(full_file_name):
            shutil.copy(full_file_name, dest_dir)
            print(f"Backed up {file} to {dest_dir}")

source = '/path/to/source/directory' destination = '/path/to/destination/directory' backup_files(source, destination)

Puede programar esta secuencia de comandos para que se ejecute diariamente utilizando herramientas de programación de tareas como cron (Linux) o Programador de tareas (Windows).

3. Descarga de archivos de Internet

Si descarga archivos de Internet con frecuencia, puede automatizar esta tarea utilizando la biblioteca solicitudes.

Aquí hay un script simple para descargar archivos desde URL:

import requests

def download_file(url, destination_folder):
    response = requests.get(url)
    if response.status_code == 200:
        with open(destination_folder, 'wb') as file:
            file.write(response.content)
        print(f"Downloaded {url} to {destination_folder}")
    else:
        print(f"Failed to download {url}")

url = 'https://example.com/file.pdf' destination = '/path/to/destination/file.pdf' download_file(url, destination)

Este script descarga el archivo desde la URL especificada y lo guarda en la carpeta especificada.

4. Automatización de informes por correo electrónico

Si necesita enviar informes por correo electrónico con regularidad, puede automatizarlo utilizando la biblioteca smtplib, que le permite enviar correos electrónicos desde una cuenta de Gmail fácilmente:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email(subject, body, to_email):
    sender_email = '[email ' sender_password = 'yourpassword' receiver_email = to_email msg = MIMEMultipart() msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) try: server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_email, msg.as_string()) server.quit() print("Email sent successfully!") except Exception as e: print(f"Failed to send email: {e}") subject = 'Monthly Report' body = 'Here is the monthly report.' send_email(subject, body, '[email ')

Este script enviará un correo electrónico simple con asunto y cuerpo a un destinatario específico. Asegúrate de habilitar aplicaciones menos seguras en Gmail si utilizas este método.

5. Programador de tareas (automatización de tareas)

La programación de tareas se puede realizar fácilmente utilizando la biblioteca schedule, que le permite automatizar tareas como enviar un correo electrónico o ejecutar un script de respaldo en momentos específicos:

import schedule
import time

def job():
    print("Running scheduled task!")

Schedule the task to run every day at 10:00 AM
schedule.every().day.at("10:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Este script seguirá ejecutándose y activará tareas a la hora especificada, en este caso, 10:00 a. m. todos los días.

6. Web Scraping para la recopilación de datos

El web scraping es una técnica poderosa para automatizar la recopilación de datos de sitios web, y las bibliotecas BeautifulSoup y requests de Python simplifican este proceso.

import requests
from bs4 import BeautifulSoup

def scrape_website(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    data = soup.find_all('h1')  # Example: Get all headings
    for item in data:
        print(item.text)

url = 'https://example.com' scrape_website(url)

Este script recupera el contenido de una página web e imprime todos los encabezados (etiquetas h1). Puede ajustarlo para extraer otros tipos de datos.

7. Automatización de publicaciones en redes sociales

Si administra cuentas de redes sociales, puede automatizar la publicación utilizando bibliotecas como Tweepy (para Twitter) e Instagram-API (para Instagram) que le permiten publicar automáticamente.

A continuación se muestra un ejemplo que utiliza la biblioteca Tweepy para publicar un tweet:

import tweepy

def tweet(message):
    consumer_key = 'your_consumer_key'
    consumer_secret = 'your_consumer_secret'
    access_token = 'your_access_token'
    access_token_secret = 'your_access_token_secret'

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)

    api = tweepy.API(auth)

    api.update_status(message)
    print("Tweet sent successfully!")

tweet("Hello, world!")

Este script publica un tweet con el mensaje “¡Hola mundo!” en su cuenta de Twitter.

8. Automatización de la generación de facturas

Si genera facturas con regularidad, puede automatizarlas utilizando bibliotecas como Fpdf, que creará facturas en PDF:

from fpdf import FPDF

def create_invoice(client_name, amount):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=12)
    pdf.cell(200, 10, txt="Invoice", ln=True, align='C')
    pdf.cell(200, 10, txt=f"Client: {client_name}", ln=True, align='L')
    pdf.cell(200, 10, txt=f"Amount: ${amount}", ln=True, align='L')
    pdf.output(f"{client_name}_invoice.pdf")
    print(f"Invoice for {client_name} created successfully!")

create_invoice('John Doe', 500)

Este script crea una factura simple y la guarda como PDF.

9. Monitoreo del tiempo de actividad del sitio web

Python se puede usar para automatizar el monitoreo del tiempo de actividad del sitio web usando la biblioteca requests, que puede verificar periódicamente si un sitio web está en línea o no:

import requests
import time

def check_website(url):
    try:
        response = requests.get(url)
        if response.status_code == 200:
            print(f"Website {url} is up!")
        else:
            print(f"Website {url} returned a status code {response.status_code}")
    except requests.exceptions.RequestException as e:
        print(f"Error checking website {url}: {e}")

url = 'https://example.com' while True: check_website(url) time.sleep(3600) # Check every hour

Este script verifica si el sitio web está en línea e imprime el código de estado.

10. Respuesta automática a correos electrónicos

Si recibe correos electrónicos con frecuencia y desea configurar una respuesta automática, utilice las bibliotecas imaplib y smtplib para responder automáticamente a los correos electrónicos:

import imaplib
import smtplib
from email.mime.text import MIMEText

def auto_reply():
    # Connect to email server
    mail = imaplib.IMAP4_SSL("imap.gmail.com")
    mail.login('[email ', 'yourpassword') mail.select('inbox') # Search for unread emails status, emails = mail.search(None, 'UNSEEN') if status == "OK": for email_id in emails[0].split(): status, email_data = mail.fetch(email_id, '(RFC822)') email_msg = email_data[0][1].decode('utf-8') # Send auto-reply send_email("Auto-reply", "Thank you for your email. I'll get back to you soon.", '[email ') def send_email(subject, body, to_email): sender_email = '[email ' sender_password = 'yourpassword' receiver_email = to_email msg = MIMEText(body) msg['From'] = sender_email msg['To'] = receiver_email msg['Subject'] = subject with smtplib.SMTP_SSL('smtp.gmail.com', 465) as server: server.login(sender_email, sender_password) server.sendmail(sender_email, receiver_email, msg.as_string()) auto_reply()

Este script responde automáticamente a los correos electrónicos no leídos con un mensaje predefinido.

11. Limpieza de archivos

Python proporciona una forma eficaz de automatizar la limpieza de archivos, especialmente para eliminar o mover archivos antiguos para mantener directorios organizados.

A continuación se muestra un script simple que elimina archivos con una antigüedad superior a un número de días específico utilizando los módulos os y time.

import os
import time

def clean_up(folder_path, days_old):
    now = time.time()
    cutoff_time = now - (days_old * 86400)  # 86400 seconds in a day
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        if os.path.getmtime(file_path) < cutoff_time:
            os.remove(file_path)
            print(f"Deleted {filename}")

folder = '/path/to/your/folder' clean_up(folder, 30) # Delete files older than 30 days

12. Generar contraseñas automáticamente

Crear contraseñas seguras y únicas es esencial para la seguridad, y Python puede ayudar a automatizar este proceso utilizando el módulo random.

A continuación se muestra un script simple que genera contraseñas aleatorias de una longitud específica, incorporando letras, dígitos y caracteres especiales para mejorar la seguridad.

import random
import string

def generate_password(length=12):
    # Define the character set: letters, digits, and punctuation
    characters = string.ascii_letters + string.digits + string.punctuation
    
    # Generate a random password
    password = ''.join(random.choice(characters) for _ in range(length))
    
    return password

Example usage: generate a password of 16 characters
password_length = 16
random_password = generate_password(password_length)
print(f"Generated Password: {random_password}")

13. Seguimiento/recordatorio de tareas

La creación de un rastreador de tareas o un sistema de recordatorio en Python se puede lograr utilizando los módulos datetime y schedule.

import schedule
import time
from datetime import datetime

def task_reminder(task_name):
    print(f"Reminder: {task_name} - {datetime.now()}")

schedule.every().day.at("09:00").do(task_reminder, task_name="Morning Meeting")

while True:
    schedule.run_pending()
    time.sleep(1)

Este script envía un recordatorio sobre la tarea a una hora programada.

14. Generar informes diarios automáticamente

Automatice los informes diarios utilizando Python para recopilar datos y formatearlos en un informe:

import datetime

def generate_report(data):
    today = datetime.date.today()
    filename = f"daily_report_{today}.txt"
    with open(filename, 'w') as file:
        file.write(f"Report for {today}\n")
        file.write("\n".join(data))
    print(f"Report generated: {filename}")

data = ["Task 1: Completed", "Task 2: Pending", "Task 3: Completed"]
generate_report(data)

15. Monitorear los recursos del sistema

Si es administrador del sistema, puede usar Python para monitorear los recursos de su sistema, como el uso de la CPU y la memoria, con la ayuda de la biblioteca psutil.

import psutil

def monitor_resources():
    cpu_usage = psutil.cpu_percent(interval=1)
    memory_usage = psutil.virtual_memory().percent
    print(f"CPU Usage: {cpu_usage}%")
    print(f"Memory Usage: {memory_usage}%")

monitor_resources()

16. Cambio de tamaño de imágenes por lotes

Si necesita cambiar el tamaño de las imágenes de forma masiva, Python lo facilita con la biblioteca Pillow.

from PIL import Image
import os

def resize_images(folder_path, width, height):
    for filename in os.listdir(folder_path):
        if filename.endswith('.jpg'):
            img = Image.open(os.path.join(folder_path, filename))
            img = img.resize((width, height))
            img.save(os.path.join(folder_path, f"resized_{filename}"))
            print(f"Resized {filename}")

folder = '/path/to/your/images' resize_images(folder, 800, 600)

Este script cambia el tamaño de todas las imágenes .jpg en una carpeta a las dimensiones especificadas.

17. Automatización de la copia de seguridad de datos en la nube

La automatización de copias de seguridad en servicios en la nube como Google Drive es posible con Python utilizando bibliotecas como pydrive.

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

def backup_to_google_drive(file_path):
    gauth = GoogleAuth()
    gauth.LocalWebserverAuth()
    drive = GoogleDrive(gauth)
    file = drive.CreateFile({'title': 'backup_file.txt'})
    file.Upload()
    print("Backup uploaded successfully!")

file = '/path/to/your/file.txt' backup_to_google_drive(file)

18. Crear recordatorios diarios

Configurar recordatorios diarios es fácil con el módulo time, que le recordará que debe beber agua cada 2 horas:

import time

def water_reminder():
    while True:
        print("Time to drink water!")
        time.sleep(7200)  # Remind every 2 hours

water_reminder()

19. Automatización de la entrada de datos a Excel

Si ingresa datos con frecuencia en Excel, Python puede ayudarlo a automatizar esta tarea con la biblioteca openpyxl:

from openpyxl import Workbook

def create_excel(data):
    wb = Workbook()
    ws = wb.active
    for row in data:
        ws.append(row)
    wb.save('data.xlsx')
    print("Excel file created successfully!")

data = [
    ["Name", "Age", "City"],
    ["John", 30, "New York"],
    ["Anna", 25, "London"],
]
create_excel(data)

20. Automatización de la limpieza de datos

Si trabaja con conjuntos de datos grandes, Python puede automatizar tareas de limpieza de datos, lo que eliminará filas vacías de un archivo CSV:

import csv

def clean_csv(file_path):
    with open(file_path, 'r') as infile:
        reader = csv.reader(infile)
        rows = [row for row in reader if any(row)]
    
    with open(file_path, 'w', newline='') as outfile:
        writer = csv.writer(outfile)
        writer.writerows(rows)
    
    print("Empty rows removed from CSV")

file = '/path/to/your/data.csv' clean_csv(file)
Conclusión

Estos son sólo algunos ejemplos de lo que Python puede hacer para automatizar sus tareas diarias. Con su sintaxis simple y potentes bibliotecas, Python puede manejar casi cualquier tarea que le plantee.

Ya sea que esté administrando archivos, enviando correos electrónicos o generando informes, Python puede ahorrarle tiempo y mejorar su productividad. Entonces, ¡comienza hoy mismo con la automatización de Python y deja que él se encargue de tus tareas diarias!

Artículos relacionados: