IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Renommer plein d'images automatiquement


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Par défaut Renommer plein d'images automatiquement
    Bonjour,

    je suis débutant en python, j'éprouve donc quelques difficultés:
    je souhaite renommer un grand nombre d'images éparpillées dans différents fichiers (qui ne contiennent pas seulement les fichiers à renommer!)

    Les noms des images à renommer sont tous avec 5 chiffres aléatoires suivis d'un nombre de 0 à 31 suivi de .jpeg et parfois de ..jpeg
    Voici quelques exemples de noms de fichiers et de ce que j'aimerais obtenir après renommage:
    986741.jpeg => 1.jpeg (ce n'est pas une erreur il n'est pas écrit 01 hein!)
    4727425.jpeg => 25.jpeg
    3729211..jpeg => 11.jpeg

    Je précise que normalement je n'aurais pas de problème de redondance (plusieurs 1 dans un même fichier), ça a été fait en amont normalement...

    Voici mon code avec un peu de commentaires:

    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
    25
    26
    27
    28
    29
    import re
    import os
     
    if __name__ == '__main__':
     
    	#declarer l'emplacement du repertoire
    	pathp="C:\Users\Moi\Desktop"
    	#recuperer les noms des fichiers et documents contenu dans le repertoire
    	files=os.listdir(pathp)
     
            #ou bien: entrer la liste des répertoires à visiter manuellement?
            j=1:120
            for k in range(j):
               files=str(k)
            #je n'ai pas testé cette partie du code...
     
    	#pour chaque fichier de mon repertoire
    	for fil in files:
    		fs=os.listdir(fil)
    		#pour chaque image contenu dans le sous repertoire
    		for f in fs
                            #mise en place d'un compteur qui servira a renommer mon fichier
    			truc=str(i)
                            #regex qui sert à differencier les fichiers a renommer des autres
    			much=r"\w{5}"+truc+".jpeg$"
    			name=os.path.basename
    			#re.search ou re.match???
    			if re.search(much,name):
    				os.rename(fil,truc)

    Je code sous windows et je ne peux pas voir les erreurs (la fenêtre se referme toute seule), je sais juste que mes noms de fichiers ne bougent pas... ce qui n'est pas étonnant finalement ^^

    Merci par avance pour votre aide

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut
    Chez moi ça marche avec ce code :
    Tu as juste à remplacer path par le dossier que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # -*- coding: cp1252 -*-
    import os, glob, re
     
    # on récupère le chemin du dossier courant
    path=os.getcwd()
    # on récupère la liste des fichiers dans le dossier courant
    listeFichiers=glob.glob(path+"\\*")
    # on parcours la liste
    for fichier in listeFichiers:
            # si le nom du fichier correspond à 5 caractères alpha-num suivit de 1 ou 2 chiffres puis de . ou .. puis de jpeg
            if re.match(r"^\w{5}[0-9]{1,2}.{1,2}jpeg$",os.path.basename(fichier)):
                    # on renomme le fichier par son ancien nom moins les 5 premiers caractères
                    os.rename(fichier, path+"\\"+os.path.basename(fichier)[5:])
    fichier contient le chemin entier du fichier et pas seulement son nom (en gros fichier correspond à path+nom du fichier.
    Un string est un tableau de caractère donc pour extraire une partie c'est plus simple de passer par les listes.

    Edit : Pour voir ce qu'il y a dans la console windows, il suffit de mettre une pause avec la ligne os.system("pause")

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 38
    Par défaut
    Merci beaucoup, ça fonctionne

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 133
    Par défaut
    Bonjour EaudeRoche,

    N'oublies pas de placer le tag 'Résolu'

    Ah le boulet ! Toutes mes excuses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Image par Image automatique
    Par ArHacKnIdE dans le forum Flash
    Réponses: 24
    Dernier message: 13/12/2006, 23h16
  2. Edition de metatags d'images automatique
    Par Airmoi dans le forum C++
    Réponses: 3
    Dernier message: 25/10/2006, 23h30
  3. [VBA-WORD] je voudrais insérer des images automatiquement.
    Par SharkAngel dans le forum VBA Word
    Réponses: 1
    Dernier message: 21/09/2006, 11h24
  4. générer xml pour plusieurs images automatiquement
    Par tomagozo dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 12/04/2006, 17h56
  5. Actualisation d'image automatique
    Par gromit83 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 01/02/2006, 08h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo