bipolaroid/src/utils/delete_corrupt_images.py

26 lines
738 B
Python

import logging
from pathlib import Path
from typing import List
from PIL import Image
import PIL.Image
from tqdm import tqdm
PIL.Image.MAX_IMAGE_PIXELS = None
def delete_corrupt_images(paths: List[Path]) -> None:
deleted_count = 0
for path in tqdm(paths):
if not path.exists():
logging.warning(f"{path} does not exist, skipping...")
continue
try:
Image.open(path)
except KeyboardInterrupt:
logging.info("Keyboard interrupt, exiting...")
raise
except:
logging.warning(f"Failed to open {path}, deleting...")
deleted_count += 1
path.unlink()
logging.info(f"Deleted {deleted_count} corrupt images")