Come automatizzare task con Python
Automatizzare con Python: esempi reali per gestire file, inviare email, fare scraping e schedulare script con cron e schedule. Le librerie utili per iniziare oggi.
I tool no-code sono comodi, ma quando vuoi controllo totale e flessibilità infinita, scrivere uno script è imbattibile. Python è il linguaggio perfetto per questo: semplice da leggere, pieno di librerie pronte e ideale per i compiti ripetitivi. In questo articolo ti spiego come automatizzare task con Python, con esempi reali su file, email, scraping e scheduling.
Cosa significa automatizzare con Python in parole semplici
Automatizzare con Python significa scrivere uno script che esegue al posto tuo un compito ripetitivo — gestire file, mandare email, raccogliere dati dal web — e farlo girare automaticamente, anche a orari prestabiliti. È un piccolo programma che lavora per te.
Il vantaggio rispetto ai tool visuali è il controllo: puoi fare esattamente ciò che vuoi, senza i limiti di una piattaforma. Lo svantaggio è che devi saper scrivere (un po' di) codice. Se preferisci il no-code, vedi i migliori tool di automazione; se invece vuoi imparare a programmare, sei nel posto giusto.
Perché Python per l'automazione
- Sintassi leggibile: il codice somiglia quasi all'inglese.
- Librerie per tutto: esiste un modulo pronto per quasi ogni esigenza.
- Multipiattaforma: lo stesso script gira su Windows, Mac e Linux.
- Comunità enorme: trovi esempi e risposte per ogni problema.
Esempio 1: gestire file e cartelle
Un classico: riordinare automaticamente una cartella, ad esempio spostando tutti i PDF in una sottocartella. Python ha i moduli os, pathlib e shutil integrati.
from pathlib import Path
import shutil
cartella = Path("Downloads")
destinazione = cartella / "PDF"
destinazione.mkdir(exist_ok=True)
for file in cartella.glob("*.pdf"):
shutil.move(str(file), destinazione / file.name)
print(f"Spostato: {file.name}")
Con poche righe hai automatizzato un riordino che ti porterebbe via minuti ogni giorno.
Esempio 2: inviare email
Per inviare email puoi usare il modulo smtplib, integrato in Python. Utile per report automatici o notifiche.
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["Subject"] = "Report automatico"
msg["From"] = "[email protected]"
msg["To"] = "[email protected]"
msg.set_content("Ciao, ecco il report generato automaticamente.")
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
smtp.login("[email protected]", "password_app")
smtp.send_message(msg)
print("Email inviata!")
Nota: per Gmail e simili devi usare una "password per app" generata dalle impostazioni di sicurezza, non la password normale.
Esempio 3: web scraping
Raccogliere dati da una pagina web è un'automazione frequente. Le librerie requests (per scaricare) e BeautifulSoup (per analizzare l'HTML) sono lo standard. Si installano con pip:
pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
risposta = requests.get(url)
soup = BeautifulSoup(risposta.text, "html.parser")
for titolo in soup.find_all("h2"):
print(titolo.get_text(strip=True))
Attenzione: fai scraping solo di siti che lo consentono, rispetta i loro termini e il file robots.txt, e non sovraccaricare i server con richieste troppo frequenti.
Esempio 4: schedulare gli script
Uno script utile va eseguito automaticamente a intervalli. Hai due strade principali.
Dentro Python, con la libreria schedule:
pip install schedule
import schedule
import time
def lavoro():
print("Eseguo il task...")
schedule.every().day.at("08:00").do(lavoro)
while True:
schedule.run_pending()
time.sleep(60)
Con il sistema operativo (più robusto per la produzione):
- Su Linux/Mac usi cron. Apri il crontab con
crontab -ee aggiungi una riga come questa, che esegue lo script ogni giorno alle 8:
0 8 * * * /usr/bin/python3 /percorso/script.py
- Su Windows usi l'Utilità di pianificazione (Task Scheduler), che fa la stessa cosa con un'interfaccia grafica.
La regola pratica: per task che devono girare anche a computer spento o in modo molto affidabile, affidati a cron/Task Scheduler; schedule va benissimo per script che restano in esecuzione.
Librerie utili da conoscere
| Esigenza | Libreria |
|---|---|
| File e percorsi | pathlib, os, shutil |
| Fogli Excel | openpyxl, pandas |
| Richieste web | requests, httpx |
| Scraping HTML | BeautifulSoup, lxml |
| Browser automation | playwright, selenium |
| Scheduling | schedule, APScheduler |
smtplib, imaplib |
Python e AI
Python è anche il linguaggio principe per l'automazione intelligente: integrare un modello AI in uno script per classificare, riassumere o rispondere è semplicissimo. Vedi automatizzare il lavoro con l'AI e come creare un agente AI.
In sintesi
Automatizzare con Python significa scrivere script che svolgono compiti ripetitivi al posto tuo: gestire file con pathlib e shutil, inviare email con smtplib, raccogliere dati dal web con requests e BeautifulSoup, e far girare tutto a orari prestabiliti con la libreria schedule o con cron/Task Scheduler. Rispetto ai tool no-code, Python dà controllo e flessibilità totali, al prezzo di dover scrivere un po' di codice. È una competenza che ripaga ogni volta che ti trovi davanti a un'attività noiosa e ripetibile.
Se vuoi imparare Python partendo da zero e arrivare ad automatizzare il tuo lavoro, dai un'occhiata ai miei corsi.