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