Scripts de automatización de Python: Optimización de tareas con Python

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.

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

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

El web scraping es el proceso de extraer datos de sitios web. Python y las bibliotecas facilitan la extracción de datos web.BeautifulSouprequests

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

 

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

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)

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

Conclusión

La versatilidad de Python lo convierte en una excelente opción para automatizar una amplia gama de tareas, desde la administración de archivos y el raspado web hasta el envío de correos electrónicos y el monitoreo de los recursos del sistema. Al incorporar estos scripts de automatización en su flujo de trabajo, puede ahorrar tiempo, reducir errores y aumentar la productividad. Siga explorando y ampliando su kit de herramientas de automatización para aprovechar al máximo las capacidades de Python.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Hola