La automatización es un aspecto clave de la informática moderna, y Python es uno de los mejores lenguajes para automatizar tareas repetitivas debido a su simplicidad y a la amplia gama de bibliotecas disponibles. En esta guía, exploraremos varios scripts de Python para automatizar diferentes tipos de tareas, incluida la administración de archivos, el raspado web, el envío de correos electrónicos y más.
1. Automatización de la gestión de archivos
La automatización de las tareas de gestión de archivos puede ahorrar mucho tiempo y reducir los errores. Python y módulos son herramientas poderosas para operaciones de archivos y directorios.os
shutil
1.1. Cambiar el nombre de varios archivos:
Este script cambia el nombre de todos los archivos de un directorio añadiendo un prefijo.
import os
def rename_files(directory, prefix):
for filename in os.listdir(directory):
os.rename(
os.path.join(directory, filename),
os.path.join(directory, prefix + filename)
)
# Usage
rename_files(‘/path/to/directory’, ‘new_’)
1.2. Organización de archivos por extensión:
Este script organiza los archivos de un directorio en subdirectorios en función de sus extensiones de archivo.
import os
import shutil
def organize_files_by_extension(directory):
for filename in os.listdir(directory):
if os.path.isfile(os.path.join(directory, filename)):
ext = filename.split(‘.’)[-1]
ext_dir = os.path.join(directory, ext)
os.makedirs(ext_dir, exist_ok=True)
shutil.move(os.path.join(directory, filename), os.path.join(ext_dir, filename))
# Usage
organize_files_by_extension(‘/path/to/directory’)
2. Automatización de Web Scraping
El web scraping es el proceso de extraer datos de sitios web. Python y las bibliotecas facilitan la extracción de datos web.BeautifulSoup
requests
2.1. Raspado de una página web:
Este script extrae e imprime todos los hipervínculos de una página web.
import requests
from bs4 import BeautifulSoup
def scrape_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, ‘html.parser’)
links = soup.find_all(‘a’)
for link in links:
print(link.get(‘href’))
# Usage
scrape_links(‘https://www.oigaprofe.com’)
2.2. Extracción de datos de una tabla:
Este script extrae datos de una tabla HTML y los imprime en un formato estructurado.
import requests
from bs4 import BeautifulSoup
def scrape_table(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, ‘html.parser’)
table = soup.find(‘table’)
headers = [header.text for header in table.find_all(‘th’)]
rows = table.find_all(‘tr’)
for row in rows:
columns = row.find_all(‘td’)
data = [column.text for column in columns]
print(dict(zip(headers, data)))
# Usage
scrape_table(‘https://example.com/table_page’)
3. Envío de correos electrónicos automatizados
La automatización de las tareas de correo electrónico puede ser muy útil para enviar notificaciones, informes o recordatorios. La biblioteca de Python le permite enviar correos electrónicos utilizando un servidor SMTP.smtplib
3.1. Enviar un correo electrónico simple:
Este script envía un correo electrónico simple utilizando un servidor SMTP.
import smtplib
from email.mime.text import MIMEText
def send_email(subject, body, to_email):
from_email = ‘your_email@example.com’
password = ‘your_password’
msg = MIMEText(body)
msg[‘Subject’] = subject
msg[‘From’] = from_email
msg[‘To’] = to_email
with smtplib.SMTP_SSL(‘smtp.example.com’, 465) as server:
server.login(from_email, password)
server.sendmail(from_email, to_email, msg.as_string())
# Usage
send_email(‘Test Subject’, ‘This is a test email.’, ‘recipient@example.com’)
4. Automatización de tareas del sistema
Python se puede utilizar para automatizar diversas tareas del sistema, como la programación de scripts, la supervisión de los recursos del sistema o la interacción con otras aplicaciones.
4.1. Programación de tareas con:schedule
Este script utiliza la biblioteca para ejecutar una función a una hora específica todos los días.schedule
import schedule
import time
def job():
print(“Doing daily task…”)
schedule.every().day.at(“10:00”).do(job)
while True:
schedule.run_pending()
time.sleep(1)
4.2. Recursos del sistema de monitoreo:
Este script supervisa el uso de la CPU y la memoria mediante la biblioteca.psutil
import psutil
import time
def monitor_system(interval):
while True:
cpu_usage = psutil.cpu_percent(interval=1)
memory_info = psutil.virtual_memory()
print(f”CPU Usage: {cpu_usage}%”)
print(f”Memory Usage: {memory_info.percent}%”)
time.sleep(interval)
# Usage
monitor_system(5)
5. Automatización web
La automatización web implica controlar un navegador web para realizar tareas como el envío de formularios, el raspado web o la prueba de aplicaciones web. Selenium es una biblioteca popular para la automatización web en Python.
5.1. Automatización de la interacción web con Selenium:
Este script automatiza el proceso de completar un formulario en una página web.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
def automate_form_submission(url, form_data):
driver = webdriver.Chrome()
driver.get(url)
for field_name, field_value in form_data.items():
field = driver.find_element_by_name(field_name)
field.send_keys(field_value)
submit_button = driver.find_element_by_name(‘submit’)
submit_button.click()
driver.quit()
# Usage
form_data = {
‘username’: ‘your_username’,
‘password’: ‘your_password’
}
automate_form_submission(‘https://example.com/login’, form_data)
5.2. Raspado de contenido dinámico con selenio:
Este script utiliza Selenium para extraer datos de una página web cargada dinámicamente.
from selenium import webdriver
from selenium.webdriver.common.by import By
def scrape_dynamic_content(url):
driver = webdriver.Chrome()
driver.get(url)
content = driver.find_element(By.ID, ‘dynamic-content’).text
print(content)
driver.quit()
# Usage
scrape_dynamic_content(‘https://example.com/dynamic’)