У меня есть простой скрипт, настроенный с использованием ImageMagick для удаления всех изображений в каталоге размером 157x200 пикселей:
import subprocess, os, sys
from tqdm import tqdm
from pathlib import Path
def delete_opaque_files():
pathlist = Path("faces").glob('*.png')
for path in tqdm(pathlist):
path_str = str(path)
command = f"identify -format '%wx%h' {path_str}"
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
if output.decode("utf-8") != "'157x200'":
print(f"Deleting: {path_str}")
os.remove(path_str)
delete_opaque_files()
sys.exit(0)
Это должно l oop через все 14,5 тыс. Изображений в каталог. Тем не менее, tqdm сообщает, что сценарий выполняется только через ~ 7220 изображений, прежде чем сценарий явно зависает (tqdm перестает обновляться и больше ничего не выводится на консоль). Когда это происходит, мне нужно вручную убить процесс в терминале.
Есть ли способы диагностировать, почему скрипт зависает? Я не вижу никаких сообщений об ошибках.