Source / tutoriel sur la création d'un client ftp avec ftp lib

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 747 fois - Téléchargée 28 fois

Contenu du snippet

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 / Exemple :


'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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.