Pages : 1
#1 Le 22/03/2008, à 17:02
- figarojuju
[Résolu] Python et os.rename(...)
Bonjour,
je m'amuse à coder un script qui re-dimensionne les images du répertoire courant et les place dans un nouveau répertoire nommé "vignette".
import Image, glob, os
#degre de miniaturisation
echelle=2
i=0
#format des photos
format="*JPG"
#je mets dans une liste toutes les images du répertoire correspondant au format recherché
malist=glob.glob(format)
#je crée le répertoire dans lequel je veux sauvegarder mes images miniaturisées
os.mkdir("vignette")
#boucle parcourant la liste des images du répertoire
for photos in malist:
img="img"+str(i)
img=Image.open(malist[i]) #ouverture des images
tailleDepart=img.size
tailleVoulue=list(tailleDepart)
tailleVoulue[0]=tailleVoulue[0]/echelle
tailleVoulue[1]=tailleVoulue[1]/echelle
out="out"+str(i)
out=img.resize(tuple(tailleVoulue)) #enregistre les nouvelles images
miniature="miniature"+str(i)+".JPG"
out.save(miniature)
i=i+1
os.rename(miniature,"./vignette") #deplace les nouvelles images dans mon répertoire de sauvegardes des miniatures
Comme cela. Mais, ça bug...
Cela vient de la façon dont j'utilise os.rename mais je n'ai pas calé la bonne syntaxe malgré mes recherches sur l'internet. Pourriez-vous m'aider?
Merci et à bientôt
Dernière modification par figarojuju (Le 30/04/2008, à 16:13)
Ubuntu: Hardy Heron
Hors ligne
#2 Le 22/03/2008, à 18:55
- PMdomine
Re : [Résolu] Python et os.rename(...)
Salut !
Pourrais-tu nous donner le message d'erreur ?
Sinon, ton usage de os.rename n'est effectivement pas bon : il attend deux noms de fichier, alors que tu donnes en second argument un nom de dossier (« ./vignette »). Peut-être que ça fonctionnera avec :
os.rename(miniature, os.path.join("vignette", miniature))
« Mais à quoi te sert Python ?
--- À tout ! »
Hors ligne
#3 Le 22/03/2008, à 19:43
- figarojuju
Re : [Résolu] Python et os.rename(...)
Merci,
cela marche parfaitement maintenant:
import Image, glob, os
#degre de miniaturisation
echelle=2
i=0
#format des photos
format="*JPG"
#je mets dans une liste toutes les images du repertoire correspondant au format recherche
malist=glob.glob(format)
#je cree le repertoire dans lequel je veux sauvegarder mes images miniaturisees
os.mkdir("vignette")
#boucle parcourant la liste des images du repertoire
for photos in malist:
img="img"+str(i)
img=Image.open(malist[i])
tailleDepart=img.size
tailleVoulue=list(tailleDepart)
tailleVoulue[0]=tailleVoulue[0]/echelle
tailleVoulue[1]=tailleVoulue[1]/echelle
out="out"+str(i)
out=img.resize(tuple(tailleVoulue))
miniature="miniature"+str(i)+".JPG"
out.save(miniature)
i=i+1
os.rename(miniature, os.path.join("vignette", miniature))
Bonne soirée!:D
Ubuntu: Hardy Heron
Hors ligne
#4 Le 22/03/2008, à 19:49
- figarojuju
Re : [Résolu] Python et os.rename(...)
Et en m'inspirant de ce que vous venez de me montrer, j'ai tout simplement écrit:
out.save(os.path.join("vignette", miniature))
ce qui me gagne une étape...:)
Bonne soirée!!
Ubuntu: Hardy Heron
Hors ligne
#5 Le 22/03/2008, à 22:14
- PMdomine
Re : [Résolu] Python et os.rename(...)
Oui, j'y ai pensé ensuite ... c'est non seulement plus simple, mais aussi plus souple (n'écrase pas d'éventuels autres fichiers) et plus élégant.
Je précise aussi que j'utilise os.path.join pour concaténer des chemins (vignette + machin.jpg => vignette/machin.jpg) indépendament de la plateforme : sous Windows, ça donnera vignette\machin.jpg, sous certains Mac vignette:machin.jpg, etc. . Bref, le script sera vraiment multi-plateforme.
« Mais à quoi te sert Python ?
--- À tout ! »
Hors ligne