Bonjour !

Je suis en train de buter sur un pb complètement basique : il s'agit de prendre une image du répertoire courant, de la transformer, et de déplacer la transformation dans un sous répertoire créé à l'occasion.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#imports
import sys, os.path, os, glob, shutil
from PIL import Image
 
#récupération chemin dossier courant
chemin=os.path.dirname(sys.argv[0])
courant = os.path.abspath(chemin)
 
#création du sous répertoire 
os.mkdir('web')
dest=os.path.join(courant, 'web')
 
#transformation des images jpg du répertoire courant
size = 800, 600
for infile in glob.glob("*.jpg"):
   #transformation 
   f, e = os.path.splitext(infile)
   im = Image.open(infile)
   im.thumbnail(size, Image.ANTIALIAS)
   im.save("T_" + f+e, "JPEG")
   #déplacement du fichier dans /web
   thumb=os.path.basename(im)
   out=os.path.join(dest, thumb)
   shutil.move(im, out)
Et ça plante au déplacement , comme dit là :

Traceback (most recent call last):
File "C:/Python24/Scripts/pymaweb/test2.py", line 22, in -toplevel-
thumb=os.path.basename(im)
File "C:\Python24\lib\ntpath.py", line 200, in basename
return split(p)[1]
File "C:\Python24\lib\ntpath.py", line 164, in split
d, p = splitdrive(p)
File "C:\Python24\lib\ntpath.py", line 119, in splitdrive
if p[1:2] == ':':
File "C:\Python24\Lib\site-packages\PIL\Image.py", line 493, in __getattr__
raise AttributeError(name)
AttributeError: __getitem__


J'ai comme la vague certitude que les méthodes de os.path et shutil ne peuvent pas être appliquées à des instances Image.open().
Donc question : comment peut-on utiliser les manipulations de path sur des objets issus de PIIL ?

Merci d'avance !

Gram'