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 :

programme qui subtilise des fichiers


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 90
    Points : 43
    Points
    43
    Par défaut programme qui subtilise des fichiers
    bonjour a tous

    j'ai écrit un programme pour renommer des fichiers en les numérotant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import os
     
    i = 1
    nom_photo = "ma photo num "
    repertoire = "/Users/manu/Desktop/dossier_test/"
    extension = ".jpg"
     
    liste_fichier = os.listdir(repertoire)
     
    for fichier in liste_fichier:
    	os.rename(repertoire + fichier, repertoire + nom_photo+ str(i) + extension)
    	i += 1
    Ca marche trés bien la 1ere fois que je le lance
    Par contre, si dans la foulée je le relance sur le meme repertoire, je me retrouve a l'arrivée avec des fichiers en moins et une variable i qui commence a partir d'un autre nombre que 1.

    J'y comprend rien, si vous pouvez m'aider sur ce coup je vous en serez reconnaissant

    Manu

  2. #2
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 829
    Points
    829
    Par défaut
    quelques pistes rapides...
    os.listdir ne garantit pas que la liste sera triée.
    donc lors du deuxième passage, ma photo num 10.jpg peut être renommée en autre chose.

    De même, le fichier 1 peut être renommé plus tard en autre chose, d'où l'impression que i commence à autre chose que 1.

    tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for fichier in sorted(liste_fichier):

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    helas ca n'arrange rien

    D'autre part, il n'y a pas qu'un problème de nommage des fichiers, il y a aussi des fichiers qui sont supprimés.

    J'ai 40 fichiers, je lance le programme et tout se passe bien
    Je le relance, la numérotation commence a partir de 10 par exemple et en plus je n'ai plus que 22 fichiers !

  4. #4
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 143
    Points
    143
    Par défaut
    Ce que propose fatbob me parait une bonne idée, le problème est que le tri proposé est le tri lexicographique (le tri par ordre alphabétique).
    Et donc fichier10.jpg aparaitra avant fichier2.jpg, ce qui n'est pas ce qu'on souhaite.
    Un moyen de corriger ce problème est de forcer d'écrire les noms de fichiers avec 3 chiffres (fichier001.jpg, fichier002.jpg, ...).
    Evidemment, ça ne marchera plus si il y a plus de 999 fichiers.

    for fichier in sorted(liste_fichier):
    os.rename(repertoire + fichier, repertoire + nom_photo + ("%03d" % i) + extension)
    i += 1

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 90
    Points : 43
    Points
    43
    Par défaut
    ca marche impec merci !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2014, 17h20
  2. Programme de recherche des fichiers
    Par lion13 dans le forum Linux
    Réponses: 2
    Dernier message: 05/03/2006, 22h28
  3. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  4. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27
  5. [VB.NET] Classe qui pilote des Fichier .INI
    Par sygale dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2004, 20h04

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