10 Automazione e Scripting
Obiettivi didattici:
-
Automatizzare compiti ripetitivi.
-
Interagire con il sistema operativo usando moduli Python (
os,shutil). -
Creare uno script che organizza file in una cartella in base al tipo.
1. Introduzione all’automazione
Python può essere usato per automatizzare operazioni ripetitive, come:
-
Rinominare file in massa.
-
Spostare o copiare documenti.
-
Leggere, modificare o analizzare dati.
Vantaggi: risparmio di tempo, riduzione errori, ripetibilità.
2. Interazione con il sistema operativo
2.1 Modulo os
Fornisce funzioni per interagire con il filesystem e l’ambiente:
import os
# Mostra la directory corrente
print(os.getcwd())
# Lista dei file nella cartella
files = os.listdir(".")
print(files)
# Crea una nuova cartella
os.mkdir("cartella_test")
# Rinomina un file
os.rename("vecchio.txt", "nuovo.txt")
2.2 Modulo shutil
Permette operazioni avanzate su file e cartelle:
import shutil
# Copia un file
shutil.copy("documento.txt", "backup/documento.txt")
# Sposta un file
shutil.move("file.txt", "destinazione/file.txt")
# Cancella una cartella con tutto il contenuto
shutil.rmtree("cartella_da_cancellare")
3. Esercizio pratico: organizzazione automatica dei file
Obiettivo: spostare i file in sottocartelle in base all’estensione (es. immagini, documenti, PDF).
import os
import shutil
# Cartella da organizzare
cartella = "C:/Utenti/Nome/Downloads"
# Sottocartelle
tipi = {
"Immagini": [".jpg", ".jpeg", ".png", ".gif"],
"Documenti": [".pdf", ".docx", ".txt"],
"Audio": [".mp3", ".wav"],
"Video": [".mp4", ".avi"]
}
# Creazione sottocartelle se non esistono
for nome in tipi:
path = os.path.join(cartella, nome)
if not os.path.exists(path):
os.mkdir(path)
# Organizzazione dei file
for file in os.listdir(cartella):
percorso_file = os.path.join(cartella, file)
if os.path.isfile(percorso_file):
estensione = os.path.splitext(file)[1].lower()
for categoria, estensioni in tipi.items():
if estensione in estensioni:
destinazione = os.path.join(cartella, categoria, file)
shutil.move(percorso_file, destinazione)
print(f"Spostato {file} in {categoria}")
Funzionamento:
-
Definisce la cartella da organizzare.
-
Crea sottocartelle per categoria se non esistono.
-
Controlla ogni file e lo sposta nella cartella corrispondente all’estensione.
4. Estensioni pratiche
-
Aggiungere nuove categorie di file (es. archivi
.zip,.rar). -
Rinominare i file secondo uno schema (es. data + nome).
-
Creare un log dei file spostati in un file
.txt.
5. Test rapido
-
Come controlli se un percorso è un file o una cartella?
Risposta:os.path.isfile(percorso)oos.path.isdir(percorso) -
Come si estrae l’estensione di un file?
Risposta:os.path.splitext(nome_file)[1] -
Quale modulo permette di copiare o spostare file facilmente?
Risposta:shutil -
Come creare una cartella se non esiste?
Risposta:os.mkdir(nome_cartella)dopo aver controllato conos.path.exists(nome_cartella)
6. Attività pratica
-
Creare uno script che rinomini tutti i file con spazi sostituendo gli spazi con underscore
_. -
Creare un backup di tutti i file PDF in una cartella separata.
-
Automatizzare il download di immagini da un URL (usando
requestsourllib) e salvarle in una cartella dedicata.

Nessun commento:
Posta un commento