Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

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


Information sur la source

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

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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
 

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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.