Script Python per Visualizzare Tutte le Immagini in una Cartella (PIL/Pillow)
Ecco uno script Python pulito e multipiattaforma che utilizza Pillow (PIL) per aprire e visualizzare ogni JPEG/PNG nella directory corrente. Funziona su Windows, macOS, Linux.
Prerequisiti
pip install pillow Script: view_images.py
#!/usr/bin/env python3 \"\"\" Visualizza tutte le immagini JPEG/PNG nella directory di lavoro corrente usando Pillow. Ogni immagine si apre nel visualizzatore predefinito del sistema operativo (o nel .show() integrato di Pillow). Premi Invio nel terminale per passare all'immagine successiva. \"\"\" from pathlib import Path from PIL import Image import sys def main(): cwd = Path.cwd() # Estensioni supportate (non case-sensitive) exts = {'.jpg', '.jpeg', '.png', '.JPG', '.JPEG', '.PNG'} image_files = sorted([f for f in cwd.iterdir() if f.suffix in exts]) if not image_files: print(f"Nessuna immagine JPEG/PNG trovata in {cwd}") sys.exit(0) print(f"Trovate {len(image_files)} immagine/i. Premi Invio per visualizzare ciascuna, 'q' + Invio per uscire.") for img_path in image_files: try: img = Image.open(img_path) print(f"\n→ {img_path.name} ({img.width}×{img.height}, {img.mode})") img.show() # Apre nel visualizzatore predefinito del SO (Anteprima, Foto, Eye of GNOME, ecc.) except Exception as e: print(f" ✗ Impossibile aprire {img_path.name}: {e}") continue # Attendi input utente try: user_in = input(" [Invio=successiva, q=esci] ").strip().lower() if user_in == 'q': break except (EOFError, KeyboardInterrupt): break print("\nFatto.") if __name__ == "__main__": main() Come Funziona
Path.cwd()ottiene la cartella corrente.iterdir()+ filtro suffisdo trova le immagini.Image.open()legge i metadati senza caricare l'intera raster (lazy).img.show()salva un BMP/PNG temporaneo e avvia il visualizzatore del SO — non bloccante.- Il ciclo attende il tuo tasto prima dell'immagine successiva.
Miglioramenti che Potresti Volere
- Ricerca ricorsiva:
cwd.rglob('*'). - Ridimensiona immagini grandi per anteprima più veloce:
img.thumbnail((1920,1080))prima dishow(). - Auto-rotazione EXIF:
ImageOps.exif_transpose(img). - Versione GUI con
tkinteroPyQtper successivo/precedente/zoom/elimina.
Salva, chmod +x view_images.py, esegui dalla tua cartella foto. Semplice, poche dipendenze, funziona ovunque gira Python.