Je suis en train d'utiliser la fonction suivante:PermissionError: [WinError 32] lorsque vous essayez de supprimer une image temporaire
def image_from_url(url):
"""
Read an image from a URL. Returns a numpy array with the pixel data.
We write the image to a temporary file then read it back. Kinda gross.
"""
try:
f = urllib.request.urlopen(url)
_, fname = tempfile.mkstemp()
with open(fname, 'wb') as ff:
ff.write(f.read())
img = imread(fname)
os.remove(fname)
return img
except urllib.error.URLError as e:
print('URL Error: ', e.reason, url)
except urllib.error.HTTPError as e:
print('HTTP Error: ', e.code, url)
Mais je continue à obtenir l'erreur suivante:
---> 67 os.remove(fname)
68 return img
69 except urllib.error.URLError as e:
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\Nir\\AppData\\Local\\Temp\\tmp8p_pmso5'
Non D'autres processus sont en cours sur ma machine (pour autant que je sache). Si je laisse de côté la fonction os.remove(fname)
, alors le code fonctionne bien, mais je ne veux pas que mon dossier temporaire se remplisse d'ordures.
Une idée de ce qui empêche l'image d'être supprimée?
... Avez-vous essayé de le fermer en premier? –
Avez-vous essayé de désactiver votre AV? – kichik
Essayez d'exécuter votre script dans une invite de commande élevée. –