PermissionError: [WinError 32] Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus
Mon code est pour un script qui ressemble à un dossier et de supprimer les images qui sont en vertu d'une résolution de 1920x1080. Le problème que j'ai c'est que mon code s'exécute;
import os
from PIL import Image
while True:
img_dir = r"C:\Users\Harold\Google Drive\wallpapers"
for filename in os.listdir(img_dir):
filepath = os.path.join(img_dir, filename)
im = Image.open(filepath)
x, y = im.size
totalsize = x*y
if totalsize < 2073600:
os.remove(filepath)
J'obtiens ce message d'erreur:
Traceback (most recent call last):
File "C:\Users\Harold\Desktop\imagefilter.py", line 12, in <module>
os.remove(filepath)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\Harold\\Google Drive\\wallpapers\\Car - ABT Audi RS6-R [OS] [1600x1060].jpg'
Juste pour confirmer, Python est le seul programme en cours d'exécution sur mon ordinateur. Ce qui est à l'origine de ce problème et comment puis-je résoudre ce problème?
OriginalL'auteur user2885647 | 2014-11-30
Vous devez vous connecter pour publier un commentaire.
Votre processus est celui qui a ouvert le fichier (via
im
existant toujours). Vous avez besoin de le fermer d'abord avant de le supprimer.Je ne sais pas si PIL prend en charge
with
contextes, mais si il n':Ce sera assurez-vous de supprimer
im
(et fermez le fichier) avant d'arriver àos.remove
.Si ce n'est pas vous pourriez vouloir vérifier Oreiller, depuis PIL développement est assez mort.
N'oubliez pas de cliquez sur la case à cocher en regard de la réponse.
oreiller travaille aussi dans le 3.x, pil pas.
OriginalL'auteur Mike DeSimone
J'ai été en cours d'exécution dans le même problème, mais l'erreur a été intermittente. Si vous êtes le codage de votre fichier ouvrir/fermer correctement et toujours en cours d'exécution dans cette erreur, assurez-vous que vous n'êtes pas synchroniser les fichiers avec Dropbox, Google Drive, etc. Je m'arrêtai Dropbox et je ne vois plus l'erreur.
OriginalL'auteur Cleverlike
C'est essentiellement la permission d'erreur, vous avez juste besoin de fermer le fichier avant de le supprimer. Après l'obtention de la taille de l'image d'infos, proche de l'image avec
file_path = os.path.join(os.path.expanduser("~/Desktop"),'my_file.zip')
et puis essayezfile_path.close()
- je obtenir AttributeError: 'str' object n'a pas d'attribut de 'fermer'.c'est parce que vous avez attribué file_path un 'str' object, pas un 'fichier' objet. C'est une erreur évidente à un chevronné Python programmeur. Cette réponse est une manière parfaitement acceptable pour fermer un fichier. Cependant, il n'est pas comme idiomatiques que l'utilisation de la
with
contexte mentionné dans la accepté de répondre.OriginalL'auteur Ayesha