Saltar al contenido

PermissionError: [WinError 32] El proceso no puede acceder al archivo porque está siendo utilizado por otro proceso

Solución:

Su proceso es el que tiene el archivo abierto (a través de im aún existente). Primero debe cerrarlo antes de eliminarlo.

No sé si PIL apoya 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()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *