Guida completa a Python
📘 Capitolo 14 – Automazione e Scripting in Python
1. Cos’è l’automazione?
L’automazione consiste nel scrivere script che svolgono automaticamente attività ripetitive, come:
- Rinomina file in batch
- Pulisce cartelle
- Invia e-mail
- Apre siti o fa login
- Legge dati da file o web
- Clicca bottoni, muove il mouse…
2. Librerie fondamentali
Libreria | A cosa serve |
---|---|
os | Gestione file, directory |
shutil | Copia/sposta file |
datetime | Orari, date |
subprocess | Lanciare comandi terminale/shell |
pyautogui | Simula tastiera, mouse |
schedule | Esegue task a orari stabiliti |
smtplib | Invia email (con SMTP) |
selenium | Automazione browser |
3. Esempi pratici di automazione
✅ Rinomina automatica di file
import os
cartella = "documenti/"
for i, nome_file in enumerate(os.listdir(cartella), start=1):
nuovo_nome = f"file_{i}.txt"
os.rename(os.path.join(cartella, nome_file), os.path.join(cartella, nuovo_nome))
print("✅ Rinomina completata.")
✅ Invio email automatico
import smtplib
from email.message import EmailMessage
email = EmailMessage()
email['Subject'] = "Ciao dal tuo script Python!"
email['From'] = "tuo@email.com"
email['To'] = "destinatario@email.com"
email.set_content("Questo è un messaggio inviato in automatico.")
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login("tuo@email.com", "la_tua_password_app")
smtp.send_message(email)
print("📧 Email inviata!")
⚠️ Per Gmail devi creare una “password per app” nelle impostazioni di sicurezza.
✅ Apertura automatica di siti
import webbrowser
webbrowser.open("https://www.google.com")
webbrowser.open_new_tab("https://www.youtube.com")
✅ Automazione tastiera/mouse con pyautogui
import pyautogui
import time
time.sleep(2) # 2 secondi per spostare il mouse
pyautogui.write("Hello, Python automation!", interval=0.05)
pyautogui.press("enter")
Usa con attenzione: può “prendere il controllo”
✅ Esecuzione pianificata con schedule
import schedule
import time
def lavoro():
print("⏰ Eseguo il task programmato!")
schedule.every(10).seconds.do(lavoro)
while True:
schedule.run_pending()
time.sleep(1)
Cosa hai imparato
- Come automatizzare attività di file, tastiera, browser
- Come usare
os
,shutil
,schedule
,pyautogui
- Come programmare task ricorrenti e script utili per la vita reale
🧪 Esercizio pratico
Crea uno script che:
- Cerca tutti i
.txt
in una cartella - Li sposta in una sottocartella chiamata
archivio/
- Stampa quanti file ha spostato
Soluzione in Python
import os
import shutil
# 📁 Cartella di partenza (modifica se serve)
cartella_base = "documenti"
cartella_archivio = os.path.join(cartella_base, "archivio")
# 🔧 Crea la cartella 'archivio/' se non esiste
os.makedirs(cartella_archivio, exist_ok=True)
# 🔍 Cerca i file .txt
file_spostati = 0
for nome_file in os.listdir(cartella_base):
percorso_completo = os.path.join(cartella_base, nome_file)
# Se è un file .txt (e non è già dentro 'archivio')
if nome_file.endswith(".txt") and os.path.isfile(percorso_completo):
destinazione = os.path.join(cartella_archivio, nome_file)
shutil.move(percorso_completo, destinazione)
file_spostati += 1
print(f"📄 Spostato: {nome_file}")
print(f"\n✅ Spostati {file_spostati} file nella cartella 'archivio/'.")
📁 Esempio di struttura iniziale:
CopiaModificadocumenti/
├── appunti.txt
├── lista.txt
├── foto.jpg
└── archivio/ ← verrà creata automaticamente
Dopo l’esecuzione, i file .txt
saranno dentro documenti/archivio/
.
Cosa hai imparato qui?
- Come creare cartelle in automatico
- Come filtrare file per estensione
- Come spostarli usando
shutil.move()
- Come automatizzare organizzazione di documenti