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 :

Deplacer un fichier dans un repertoire


Sujet :

Python

  1. #1
    Membre habitué
    Avatar de moithibault
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 142
    Points
    142
    Par défaut Deplacer un fichier dans un repertoire
    Bonjour , je cherche à déplacer un fichier dans un répertoire le problème c'est que sur le web j'ai trouvé pleins de propositions différentes , et par manque de les avoir bien compris je ne sais pas laquelle dois-je utiliser .
    Aprés avoir vu ce topic qui renvoie vers ce site et quelques forums je pense qu'il faut que j'utilise : J'ai donc fait ça (la méthode est généré par un bouton):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def copie(filename):
                dest=os.getcwd()
                print "depart :"+filename+"\n destination"+dest
     
                os.rename(filename,dest)
                print "copié"
    Le probléme c'est que je ne sais pas trop comment marche la fontion , dest renvoie le chemin du repertoire courant et filename le chemin du fichier que je désire copié (vers le repertoire courant) Je test le code et bim erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WindowsError: [Error 183] Impossible de créer un fichier déjà existant
    Pouvez-vous m'aider Merci

    ....

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    C'est normal : On Windows, if dst already exists, OSError will be raised even if it is a file ton répertoire contient déjà un fichier avec le même nom.
    A vérifier avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if os.path.exists(dest): # Dans ce cas j'aurais mis os.path.isfile mais bon...
        print dest, "existe déjà"
    else:
        os.rename(filename,dest) # Utilisant Linux je préfère shutil.move(src, dst) qui m'évite des surprises.
        print "copié"
    Pourrez tu donner la sortie du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "depart :"+filename+"\n destination"+dest
    ?

    Comment obtient tu filename ?

    @+

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Re,

    Je rajouterais même un autre test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if filename == dest:
        print "La source et la destination sont identiques"
    elif os.path.exists(dest):
        print dest, "existe déjà"
    else:
        try:
            os.rename(filename,dest)
            print "copié"
        except:
            print "Erreur de copie"
    @+

  4. #4
    Membre habitué
    Avatar de moithibault
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 142
    Points
    142
    Par défaut
    Merci ça marche nikel
    Encore merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2009, 12h35
  2. chercher un fichier dans un repertoire
    Par parisien dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/11/2005, 21h55
  3. Nombre de fichiers dans un répertoire
    Par berry dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 12/11/2005, 18h48
  4. Réponses: 4
    Dernier message: 19/04/2005, 13h27
  5. Réponses: 6
    Dernier message: 11/02/2005, 07h41

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