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 :

optimiser le renommage de fichiers


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur mécanique
    Inscrit en
    Décembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2018
    Messages : 1
    Par défaut optimiser le renommage de fichiers
    Bonjour,

    je débute dans Python et je vient chercher votre aide.

    J'aimerais poster ici des codes que j'ai créer et avoir vos retours dessus pour m'améliorer.

    Je remonterai dans ce post au fur et a mesure des problématiques la ou les meilleurs réponses.


    PB.1: (renommer plusieurs fichiers)

    Je cherche a renommer tous les fichiers présents dans un dossier en leur ajoutant avant l'extension "-B".
    Il y a plusieurs types d'extension dans le dossier, des ".PDF", ".DXF" et ".STEP"

    J'ai écris ce code qui fonctionne mais qui ne me semble pas forcément "optimisé"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/usr/bin/python3
    # -*- coding: utf-8 -*
     
    import os.path
     
    chemin = os.listdir("C://poumtralala")
     
    for files in chemin:
    	if files.endswith(".PDF"):
    		files = os.rename(files, files[:-4] + "-B.PDF")
    	elif files.endswith(".DXF"):
    		files = os.rename(files, files[:-4] + "-B.DXF")
    	elif files.endswith(".STEP"):
    		files = os.rename(files, files[:-5] + "-B.STEP")
    Est-ce qu'il y a une façon d'écrire cela plus simplement ? (j'ai remplacer le véritable chemin par "poumtralala"
    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Salut,

    Déjà votre code ne fonctionne que si le répertoire courant est le même que celui passé à os.listdir.

    Après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chemin = os.listdir("C://poumtralala")
     
    for files in chemin:
    s'écrit plus simplement: for path in os.listdir("C://poumtralala"):.

    Votre code renomme des fichiers dont l'extension est dans PDF, DXF, STEP en ajoutant -B au nom.
    Et puisque vous vous lancez dans l'utilisation des bibliothèques, autant regarder s'il n'y a pas une fonction qui aide à séparer nom et extension. os.path.splitext semble être fait pour çà.
    Ce qui devrait vous aider à simplifier (mais c'est vous qui codez ).

    Citation Envoyé par Sheldouille Voir le message
    je débute dans Python et je vient chercher votre aide.

    J'aimerais poster ici des codes que j'ai créer et avoir vos retours dessus pour m'améliorer.

    Je remonterai dans ce post au fur et a mesure des problématiques la ou les meilleurs réponses.
    Relisez les règles d'utilisation du forum: vous êtes supposé ouvrir une discussion sur un sujet bien défini afin que d'autres puissent aussi tirer profit de réponses apportées et avec un titre qui résume le problème ou la question pour qu'on puisse facilement la retrouver.

    De plus la plupart des tutos vous proposent déjà des exercices corrigés.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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