×

Guida completa a Python

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

LibreriaA cosa serve
osGestione file, directory
shutilCopia/sposta file
datetimeOrari, date
subprocessLanciare comandi terminale/shell
pyautoguiSimula tastiera, mouse
scheduleEsegue task a orari stabiliti
smtplibInvia email (con SMTP)
seleniumAutomazione 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:

  1. Cerca tutti i .txt in una cartella
  2. Li sposta in una sottocartella chiamata archivio/
  3. 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

Pagine: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19