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

Réseau/Web Python Discussion :

telecharger les fichiers d'un repertoire du FTP


Sujet :

Réseau/Web Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut telecharger les fichiers d'un repertoire du FTP
    bonjour,

    voila je bute sur un problème,je désire télécharger tous les fichiers qui se trouve dans mon FTP et les mettre dans un dossier situer sur le bureau.
    pour le moment j'arrive bien à me connecter sur le FTP, a voir les fichiers qui se trouvent dans mon répertoire, mais après je ne sais comment faire le téléchargement dans mon dossier RECEPTION(situé sur le bureau)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    host = "adresse" 
    user = "login" 
    password = "mdp" 
    ftp = FTP(host,user,password) 
     
    dep = ftp.dir("/dossier/1") 
    print (dep)
    ftp.cwd("/Users/moi/Desktop/RECEPTION")
    #ftp.retrbinary("RETR "  ,open(??????, "wb").write)
    ftp.quit()
    merci pour votre aide

  2. #2
    Expert confirmé

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

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

    Si dep contient la liste des fichiers, alors comme ceci sans doute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for f in dep:
        with open(f, "wb") as outf:
            try:
                ftp.retrbinary('RETR %s' % f, outf.write)
            except Exception as why:
                print("RETR error with %s: %s" %(f, why))

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut
    bonjour,et merci

    je vous confirme que le dep m'affiche bien tous les fichiers qui se trouve dans le répertoire mais néanmoins j'ai une erreur:
    TypeError: 'NoneType' object is not iterable
    sur la ligne
    d'autre part est ce qu'il est possible d'avoir un téléchargement automatique des la présence d'un fichier sachant que l'on se trouve sur un FTP?

    merci

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Où as-tu placé le code de VinsS ?

  5. #5
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 308
    Par défaut
    Citation Envoyé par frederic2710 Voir le message
    bonjour,et merci

    je vous confirme que le dep m'affiche bien tous les fichiers qui se trouve dans le répertoire mais néanmoins j'ai une erreur:

    sur la ligne
    C'est contradictoire, que t'affiche print(dep) ?

    d'autre part est ce qu'il est possible d'avoir un téléchargement automatique des la présence d'un fichier sachant que l'on se trouve sur un FTP?

    merci
    Non, mais tu peux créer une tâche automatique, par exemple chaque jour ou même chaque heure, sous Linux avec crontab, sous Windows je ne connais pas.
    Tu supprimes tes fichiers du serveur après les avoir copiés ?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Je crois que le problème c'est que ftp.dir ne renvois pas seulement les noms de fichier, il faudrait essayer avec ftp.nlst...

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut
    voila le code modifié:

    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
    host = "adresse" 
    user = "login" 
    password = "mdp" 
    ftp = FTP(host,user,password) 
     
    dep = ftp.dir("/dossier/1") 
    print (dep)
     
    for f in dep:
        with open(f, "wb") as outf:
            try:
                ftp.retrbinary('RETR %s' % f, outf.write)
            except Exception as why:
                print("RETR error with %s: %s" %(f, why))
     
    #ftp.retrbinary("RETR "  ,open(??????, "wb").write)
    ftp.quit()
    le dep m'affiche un fichier .mov et un fichier H264

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Peux-tu essayer ce que je t'ai proposé au message 6 ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut
    j'ai remplacé le .dir par le.nlst, est maintenant c'est fonctionnel.
    j'aurai une question supplémentaire,est il possible de déplacer des fichiers en interne du ftp dans le cas ou le transfert c'est bien effectué ,le fichier en question est déplacé dans un fichier ok et si il a échoué il est déplacé dans un dossier failed

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    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 790
    Par défaut
    Salut,

    Citation Envoyé par frederic2710 Voir le message
    est il possible de déplacer des fichiers en interne du ftp dans le cas ou le transfert c'est bien effectué ,le fichier en question est déplacé dans un fichier ok et si il a échoué il est déplacé dans un dossier failed
    Et si vous preniez le temps de visiter la FAQ?
    Vous y auriez trouvé comment récupérer vos fichiers via FTP ici.
    Et pour savoir comment gérer fichiers et répertoires vous avez toute une rubrique.

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

  11. #11
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut
    oui,j'ai déjà utilise par exemple le shutil
    shutil.move(source, destination) mais dans le cas du ftp je ne sais pas si c'est la même méthode.
    j'ai essayé mais j'ai un message d'erreur pour la destination

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shutil.move(f, "/dossier/failed")

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    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 790
    Par défaut
    Salut,

    shutil.move se fout pas mal de la façon avec laquelle a été créé le fichier.
    S'il n'arrive pas à réaliser l'opération, il faut juste essayer de comprendre pourquoi.

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

Discussions similaires

  1. [FTP] Lister les fichiers dans un repertoire
    Par Death83 dans le forum Langage
    Réponses: 3
    Dernier message: 16/11/2006, 15h31
  2. Copier les fichiers d'un répertoire dont la date est supérieure à x
    Par tatayoyo dans le forum Shell et commandes GNU
    Réponses: 17
    Dernier message: 03/10/2006, 14h28
  3. Afficher les fichiers d'un repertoire
    Par mohamed dans le forum Langage
    Réponses: 2
    Dernier message: 16/02/2006, 11h55
  4. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 11h22

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