Presta atención ya que en esta reseña hallarás el arreglo que buscas.
Solución:
Su proceso es el que tiene el archivo abierto (a través de im
todavía existente). Primero debe cerrarlo antes de eliminarlo.
No sé si PIL es compatible with
contextos, pero si lo hiciera:
import os
from PIL import Image
while True:
img_dir = r"C:UsersHaroldGoogle Drivewallpapers"
for filename in os.listdir(img_dir):
filepath = os.path.join(img_dir, filename)
with Image.open(filepath) as im:
x, y = im.size
totalsize = x*y
if totalsize < 2073600:
os.remove(filepath)
Esto se asegurará de eliminar im
(y cierre el archivo) antes de llegar a os.remove
.
Si no es así, es posible que desee consultar Pillow, ya que el desarrollo de PIL está prácticamente muerto.
Me estaba encontrando con el mismo problema, pero el error era intermitente. Si está codificando su archivo para abrir/cerrar correctamente y aún se encuentra con este error, asegúrese de no sincronizar los archivos con Dropbox, Google Drive, etc. Pausé Dropbox y ya no veo el error.
Esto es básicamente un error de permiso, solo necesita cerrar el archivo antes de eliminarlo. Después de obtener la información del tamaño de la imagen, cierre la imagen con
im.close()