Я пишу функцию для программы, которая берет папку, полную изображений (.jpg) и сжимает их до определенного размера в байтах.Я хочу, чтобы вся папка была меньшего размера, поэтому я хочу ограничить размер диска каждого файла.Вот что у меня есть:
from PIL import Image
import os
maxSize = 750000 #750KB, 0.75MB
def file_size(fname):
statinfo = os.stat(fname)
return int(statinfo.st_size) ## bytes
def compressFiles(bool):
if bool==True:
for filename in os.listdir("."):
if filename.endswith(".jpg"):
print(filename,"Initial Size:",file_size(filename))
while file_size(filename) >= maxSize:
foo = Image.open(filename)
foo.save(filename,quality=95)
print(filename,"Final Size:",file_size(filename))
Вот что он выводит,
Initial Size: 120533
Final Size: 120533
Initial Size: 983463
... Затем он продолжает открывать и закрывать следующее изображение размером более 750 КБ, казалось бы, бесконечно.