26 lines
738 B
Python
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")
|