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 :

suppression des espaces dans les noms de fichiers


Sujet :

Python

  1. #1
    Membre confirmé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Points : 616
    Points
    616
    Par défaut suppression des espaces dans les noms de fichiers
    Salut à tous,

    Je dois faire un script qui me permettrait de prendre en argument un répertoire et qui modifierait les noms des fichiers présents dans ce répertoire.
    En gros, le souci, c'est que j'ai des noms de fichiers, qui ont des espaces et je dois les changer par des "_".

    Je ne connais pas le Python mais c'est le language choisi par mon boss....

    Donc quelqu'un pourrait-il m'aider?

    Merci d'avacance
    --
    Ludovic

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Un truc de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import shutil
    import glob 
    import os.path 
     
    def replacefiledirectory(path):
        l = glob.glob(path+'\\*')
        for i in l: 
            if os.path.isdir(i): fichier.extend(listdirectory(i)) 
            else: shutil.move(i, i.replace(' ','_'))
    cf FAQ:
    http://python.developpez.com/faq/?pa...tenuRepertoire
    http://python.developpez.com/faq/?pa...ing#strReplace
    http://python.developpez.com/faq/?pa...erequis#osAide

  3. #3
    Membre confirmé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Points : 616
    Points
    616
    Par défaut
    voici le script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def replacefiledirectory(path):
        list = glob.glob(path+'*')
        for file in list:
    	print(file) 
            if os.path.isdir(file): 
    		print('Directory ' + file)
            else: 
    		print('Change filename: ' + file)
    		shutil.move(file, file.replace(' ','_'))
    et j'ai l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [//home/lmenuge/data/ 009-391.txt
    Change filename: /home/lmenuge/data/ 009-391.txt
    Traceback (most recent call last):
      File "script.py", line 19, in ?
        replacefiledirectory('/home/lmenuge/data/')
      File "script.py", line 16, in replacefiledirectory
        shutil.move(file, file.replace(' ','_'))
    AttributeError: 'module' object has no attribute 'move'
    --
    Ludovic

  4. #4
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    shutil.move : c'est une faute de frappe => util.move
    avec une petite recherche !
    Snoop

  5. #5
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    bis...
    l'as-tu importer ?

    Snoop

  6. #6
    Membre confirmé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Points : 616
    Points
    616
    Par défaut
    oui opui, mais je viens de trouver...

    move est apparu récemment, et je pointais sur un python 2.3...

    Merci beaucoup, le script marche très bien...
    --
    Ludovic

  7. #7
    Membre confirmé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Points : 616
    Points
    616
    Par défaut
    J'ai un nouveau probleme, avec des noms de fichiers...

    Est il possible changer certains caracteres?

    Je m'explique, je ne souhaite pas avoir de caracteres speciaux (type caracteres avec accents par exemple...). je ne souhaite avoir que les caracteres presents sur le clavier qwerty americain

    Quelqu'un a une idee?

    Merci d'avance
    --
    Ludovic

  8. #8
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >> "accentué".isalpha()
    >> False
    >> "accentue".isalpha()
    >> True
    Snoop

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    bonjour,

    regarde les fonctions maketrans et translate du module string qui vont te permettre de changer toutes les lettres ou symbole que tu veux en d'autres lettres de façon quasi automatique.

    un lien vers la doc : http://pydoc.org/1.6/string.html

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

Discussions similaires

  1. fontion : Gestion des espaces dans les noms de dossier
    Par _stephnane_ dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 10/11/2010, 10h56
  2. Faut-il utiliser des underscores ou des espaces dans les noms des fichiers ?
    Par Invité dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 07/05/2008, 19h23
  3. Changer des caractères dans les noms de fichiers
    Par ForgetTheNorm dans le forum Linux
    Réponses: 2
    Dernier message: 07/01/2008, 14h26
  4. support des espaces dans les noms de fichiers
    Par menuge dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2006, 09h02
  5. [BATCH] Espaces dans les noms de fichiers :|
    Par andlio dans le forum Windows
    Réponses: 1
    Dernier message: 03/08/2006, 03h42

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