begin process at 2010 09 04 17:52:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & internet

 > SOURCE / TUTORIEL SUR LA CRÉATION D'UN CLIENT FTP AVEC FTP LIB

SOURCE / TUTORIEL SUR LA CRÉATION D'UN CLIENT FTP AVEC FTP LIB


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & internet Classé sous :ftp, client, lib, ftplib Niveau :Initié Date de création :18/07/2005 Vu :9 105

Auteur : lambdacrash

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note


 Description

Au fur et à mesure des codes, vous aprendrez à créer un petit client FTP très léger en .py . Tous les scripts fonctionnent. Pensez à récupérer FTPLib (http://nbpfaus.net/~pfau/ftplib/).

Source

  • 'Retourne la liste des fichiers et / ou dossiers :
  • 'Code :
  • import ftplib
  • ftp = ftplib.FTP("location du serveur")
  • ftp.login("login", "mdp")
  • print ftp.dir()
  • ftp.quit()
  • 'Résultat :
  • drwxr-xr-x 1 ftp ftp 0 Jul 12 22:32 Recycled
  • drwxr-xr-x 1 ftp ftp 0 Jul 08 13:12 myor
  • drwxr-xr-x 1 ftp ftp 0 Jul 02 21:52 System Volume Information
  • drwxr-xr-x 1 ftp ftp 0 Jul 05 18:29 francois
  • 'Retourne le contenu binaire du fichier 'filename' :
  • 'Code :
  • import ftplib
  • import sys
  • def gettext(ftp, filename, outfile=None):
  • if outfile is None:
  • outfile = sys.stdout
  • ftp.retrlines("RETR " + filename, lambda s, w=outfile.write: w(s+"\n"))
  • def getbinary(ftp, filename, outfile=None):
  • if outfile is None:
  • outfile = sys.stdout
  • ftp.retrbinary("RETR " + filename, outfile.write)
  • ftp = ftplib.FTP("serveur")
  • ftp.login("login", "psw")
  • gettext(ftp, "README.txt")
  • getbinary(ftp, "README.txt") 'retourne le contenu binaire du fichier ;)
  • 'Résultat avec un fichier README.txt contenant 'coucou' :
  • >>> ========================== RESTART ===========================
  • >>>
  • coucou
  • coucou
  • >>>
  • 'Code pour uploader des fichiers :
  • import ftplib
  • import os
  • def upload(ftp, file):
  • ext = os.path.splitext(file)[1]
  • if ext in (".txt", ".htm", ".html"):
  • ftp.storlines("STOR " + file, open(file))
  • else:
  • ftp.storbinary("STOR " + file, open(file, "rb"), 1024)
  • ftp = ftplib.FTP("ftp.fbi.gov")
  • ftp.login("mulder", "trustno1")
  • upload(ftp, "trixie.zip")
  • upload(ftp, "file.txt")
  • upload(ftp, "sightings.jpg")
  • 'Code rassemblant un peu tout ça :
  • from ftplib import FTP
  • def handleDownload(block):
  • file.write(block)
  • print ".",
  • ftp = FTP('server')
  • print 'Connection to your FTP server'
  • print 'Logging in.'
  • print ftp.login('login', 'psw')
  • 'dossier dans lequel tu veux aller chercher un fichier
  • directory = 'mondossier/monsousdossier/'
  • print 'Changing to ' + directory
  • ftp.cwd(directory)
  • 'affichage de la liste des fichiers
  • ftp.retrlines('LIST')
  • 'fichier à télécharger dans le dossier sélectionné plus haut
  • filename = 'bonjour.doc'
  • print 'Opening local file ' + filename
  • file = open(filename, 'wb')
  • print 'Getting ' + filename
  • 'téléchargement du fichier
  • ftp.retrbinary('RETR ' + filename, handleDownload)
  • print 'Closing file ' + filename
  • file.close()
  • print ftp.close()
  • 'le fichier téléchargé se trouve dans le dossier contenant ton code.py
  • 'Tous ces codes ont été testés et fonctionnent parfaitement bien.
'Retourne la liste des fichiers et / ou dossiers :

'Code :
    import ftplib
    ftp = ftplib.FTP("location du serveur")
    ftp.login("login", "mdp")
    print ftp.dir()
    ftp.quit()

'Résultat :
    drwxr-xr-x 1 ftp ftp              0 Jul 12 22:32 Recycled
    drwxr-xr-x 1 ftp ftp              0 Jul 08 13:12 myor
    drwxr-xr-x 1 ftp ftp              0 Jul 02 21:52 System Volume Information
    drwxr-xr-x 1 ftp ftp              0 Jul 05 18:29 francois


'Retourne le contenu binaire du fichier 'filename' :

'Code :
    import ftplib
    import sys
    def gettext(ftp, filename, outfile=None):
        if outfile is None:
            outfile = sys.stdout
        ftp.retrlines("RETR " + filename, lambda s, w=outfile.write: w(s+"\n"))
    def getbinary(ftp, filename, outfile=None):
        if outfile is None:
            outfile = sys.stdout
        ftp.retrbinary("RETR " + filename, outfile.write)
    ftp = ftplib.FTP("serveur")
    ftp.login("login", "psw")
    gettext(ftp, "README.txt")
    getbinary(ftp, "README.txt") 'retourne le contenu binaire du fichier ;)

'Résultat avec un fichier README.txt contenant 'coucou' :
    >>> ==========================      RESTART     ===========================
    >>>
    coucou
    coucou
    >>>


'Code pour uploader des fichiers :
    import ftplib
    import os
    def upload(ftp, file):
        ext = os.path.splitext(file)[1]
        if ext in (".txt", ".htm", ".html"):
            ftp.storlines("STOR " + file, open(file))
        else:
            ftp.storbinary("STOR " + file, open(file, "rb"), 1024)
    ftp = ftplib.FTP("ftp.fbi.gov")
    ftp.login("mulder", "trustno1")
    upload(ftp, "trixie.zip")
    upload(ftp, "file.txt")
    upload(ftp, "sightings.jpg")

'Code rassemblant un peu tout ça :
    from ftplib import FTP
    def handleDownload(block):
        file.write(block)
        print ".",
    ftp = FTP('server')
    print 'Connection to your FTP server'
    print 'Logging in.'
    print ftp.login('login', 'psw')
    'dossier dans lequel tu veux aller chercher un fichier
    directory = 'mondossier/monsousdossier/'
    print 'Changing to ' + directory
    ftp.cwd(directory)
    'affichage de la liste des fichiers
    ftp.retrlines('LIST')
    'fichier à télécharger dans le dossier sélectionné plus haut
    filename = 'bonjour.doc'
    print 'Opening local file ' + filename
    file = open(filename, 'wb')
    print 'Getting ' + filename
    'téléchargement du fichier
    ftp.retrbinary('RETR ' + filename, handleDownload)
    print 'Closing file ' + filename
    file.close()
    print ftp.close()
    'le fichier téléchargé se trouve dans le dossier contenant ton code.py

'Tous ces codes ont été testés et fonctionnent parfaitement bien.

 Conclusion

N'hésitez pas à me laisser vos commentaires et questions


 Sources du même auteur

Source avec une capture PANNEAU DE CONFIGURATION D'EASY PHP 1.8

 Sources de la même categorie

Source avec une capture HTTP FORWARDER par matad0r
Source avec Zip GÉNÉRATEUR HTML POUR L'UTILISATION DE PYTHON EN CGI par Just_1
SIMPLE COMPARATEUR IPV4 EN PYTHON par erebos
TÉLCHARGEUR YOUTUBE par rezuz
Source avec Zip LIRE DES FICHIERS PCAP par KimbleMandel

 Sources en rapport avec celle ci

Source avec Zip FTP AVEC PYTHON par KimbleMandel
[HTTP-CLIENT] - RÉCUPÉRER UNE REQUETE COMPLÈTE SANS PASSER P... par jean84
Source avec Zip CLIENT/SERVEUR XMLRPC par balisong1
Source avec Zip LISTEUR DE FICHIER EN RÉSEAUX par bouceka
Source avec Zip PROG IMITANT FTP.EXE DANS WINDOWS par Bl0tCh

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Client Serveur Netstat [ par power211 ] Bonjour à tous, je suis un ptit nouveau ds le monde du python, projet d ecole oblige mais c vrai que  le python c rapide comme langage.Bon t Application FTP, urgent [ par mus_python ] Bonjour tout le monde, je viens de commencer la programmation avec python et je suis chargé de faire une application qui permet la connexion entr Socket et Threading [ par dabcorp ] Bonjour , J'ai fait un client/serveur socket , mais je me comprend pas les threads ... Je suis obligé de faire une boucle pour relance le progra serveur python et client visual basic [ par vinz973 ] bonjour je souhaite créer un serveur en python (socket) qui recoive des données d'une client en visual basic (winsock ) en TCP le probl Date de création des fichiers par ftp [ par judre ] Salut, J'ai une application qui transfère une tonne de fichier par ftp en utilisant ftplib.  J'aimerais savoir si y'a un truc pour tél à quoi sert SetBusType dans wx.lib.calendar.Calendar ? [ par uko ] Bonjour,     Je n'arrive pas à trouver à quoi sert la fonction SetBusType dans la classe wx.lib.calendar.Calendar . Est-ce q Messagerie [ par MOY75 ] Bonjour, je suis en développement d'une messagerie type IRC en python mais j'ai un problème avec le Client. Quand on tappe un message et qu' [Reception de données vers un client] [ par Kadaj676 ] Bonjour à tous, voila j'ai un assez gros problème. Je me suis mit il y a quelque temps aux sockets, et je n'ai pas vraiment eu de mal, mais bon le sou TWISTED : Transfert de fichier [ par chmod666 ] Bonjour,je viens enfin de trouver ce qu'il me faut aprés bcps bcps de recherche il faut le dire ... Situation:J'ai un client qui envoie un fichierJ' besoin d'aide ,code client/serveur [ par Veust ] Je suis actuellement sur un projet ou je suis suppposé écrire un code sous python permettant de faire communiquer plusieurs types de plateformes (PC,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales