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 un dossier [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    dessinateur CAO/DAO
    Inscrit en
    Juillet 2017
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : dessinateur CAO/DAO

    Informations forums :
    Inscription : Juillet 2017
    Messages : 46
    Par défaut Renommer un dossier
    Bonjour,

    Mon problème est certainement très simple mais a avoir le nez dedans je ne le voie pas.
    Je dois une fois toute ma procédure exécuté changer le nom d'un dossier de tel sorte de ne plus revenir dessus (Je ne serai pas étonné qu'on me demande de le déplacer dans un autre dossier plus tard mais c'est au prochain épisode).

    Dans un premier temps je dois sélectionner un sous dossier ou se trouve les fichiers a traiter. Jusque là pas de problème
    Je remonte d'un cran dans mon arborescence pour retrouver le nom et l'adresse de départ de ce dossier.
    Ce dossier étant traité je voudrais lui ajouter ('_INT') pour intégrer et la date du jour.

    D'après les informations des print cela est bon mais lorsque j'utilise os.rename pyhton me renvoie le message suivant : "WindowsError: [Error2]Le fichier spécifié est introuvable"

    S'il quelqu'un peut me dire ou est mon erreur cela serait vraiment sympa.

    Merci

    Bonne journée

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    import Tkinter
    from Tkinter import *
     
    import tkMessageBox
    import tkFileDialog
     
    import os
    from os import *
     
    import arcpy
    from arcpy import env
     
    import time
    import datetime
    from time import *
     
    import sys
     
    import shutil
    Adresse = r'C:\Users\toto\Documents\EMPRISE'    # Adresse permettant d'aller plus vite dans le TkFileDialog
     
    env.workspace = tkFileDialog.askdirectory(initialdir=Adresse,title='Selectionnez le repertoire') #choix du dossier via une fenetre de sélection
    #print env.workspace
    #print os.path.dirname(env.workspace)                        #Permet d'avoir l'adresse du dossier choisi
    #print os.path.basename(os.path.dirname(env.workspace))      #Permet d'avoir uniquement le nom du dossier choisi
     
    name = os.path.basename(os.path.dirname(env.workspace))
    newname = os.path.basename(os.path.dirname(env.workspace))+('_INT')+('_')+str(datetime.date.today())
    print env.workspace
    print name
    print newname
     
    dossier= os.rename(name,newname)
     
     
    #Message de fin de procedure de sauvegarde
    tkMessageBox.showinfo("SAUVEGARDE", "Votre Affaire a ete integre")         #Message d'information a utilisateur

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu t'embrouilles il me semble, tu utilises le nom du dossier parent au lieu du dossier choisit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >>> import os
    >>> initial = "/home/toto/music/classic"
    >>> name = os.path.basename(os.path.dirname(initial))
    >>> name = os.path.basename(os.path.dirname(initial))
    >>> new = name + "_suffix"
    >>> print(name)
    music
    >>> print(new)
    music_suffix
    Tu vas chercher le dossier music alors que vraisemblablement tu veux le dossier classic, non ?

    Pour ces opérations, si tu as les chemins complets utilise-les. Tu n'as pas toujours la garantie que ce dossier est le dossier courant de ton programme.

  3. #3
    Membre confirmé
    Femme Profil pro
    dessinateur CAO/DAO
    Inscrit en
    Juillet 2017
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : dessinateur CAO/DAO

    Informations forums :
    Inscription : Juillet 2017
    Messages : 46
    Par défaut
    d'accord mais une fois que j'ai réaliser mes opérations sur le dossier classique, comment faire pour changer le nom du dossier music en musci "+sufix"
    car que ce soit os.rename ou os.renames aucun ne semblent convenir?

  4. #4
    Membre confirmé
    Femme Profil pro
    dessinateur CAO/DAO
    Inscrit en
    Juillet 2017
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : dessinateur CAO/DAO

    Informations forums :
    Inscription : Juillet 2017
    Messages : 46
    Par défaut
    Re-bonjour.
    Comme d'habitude il me faut un peu de temps mais avec les solutions que tu m'as donné j'ai réussi. MERCI

    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
     
    Adresse = r'C:\Users\toto\Documents\EMPRISE'    # Adresse permettant d'aller plus vite dans le TkFileDialog
     
    env.workspace = tkFileDialog.askdirectory(initialdir=Adresse,title='Selectionnez le repertoire')                         #choix du dossier via une fenêtre de sélection
     
    name = os.path.basename(os.path.dirname(env.workspace))
     
    newname = os.path.basename(os.path.dirname(env.workspace))+('_INT')+('_')+str(datetime.date.today())   # ici je créé le nom de mon futur dossier
     
    NewDossier = os.path.join(os.path.dirname(os.path.dirname(env.workspace)),newname)                              #ici concatène mon emplacement avec le nom de mon futur dossier 
     
    os.rename(os.path.dirname(env.workspace),NewDossier) #ici je renomme mon dossier 
     
    #Message de fin de procedure de sauvegarde
    tkMessageBox.showinfo("SAUVEGARDE", "Votre Affaire a ete integre")                                                        #Message d'information a utilisateur
    Il est certainement possible d’optimiser sur une ou deux lignes mais pour le moment cela fonctionne très bien

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

Discussions similaires

  1. Renommer des dossiers
    Par ced1984 dans le forum VBScript
    Réponses: 2
    Dernier message: 14/02/2007, 16h24
  2. Réponses: 2
    Dernier message: 06/12/2006, 11h50
  3. [VB.NET] Probleme renommer un dossier
    Par Aspic dans le forum Accès aux données
    Réponses: 3
    Dernier message: 20/11/2006, 21h32
  4. Probleme pour renommer un dossier
    Par blondelle dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/09/2006, 23h07
  5. Renommer un dossier
    Par Furius dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2005, 12h18

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