Application FTP, urgent

mus_python Messages postés 1 Date d'inscription vendredi 15 juillet 2005 Statut Membre Dernière intervention 15 juillet 2005 - 15 juil. 2005 à 20:52
Erico974 Messages postés 5 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 11 septembre 2009 - 11 sept. 2009 à 17:22
Bonjour tout le monde, je viens de commencer la programmation avec
python et je suis chargé de faire une application qui permet la
connexion entre le client et un serveur FTP, et dans cette application
il doit y avoir la possibilité de selection des fichiers bien définis
pour les copier dans le poste client souhaité.

et pour faire cette application, il faut de temps, mais j'ai pas assez
de temps car je passe un stage et il faut que je leurs donne cette
application le plus tôt possible.

en faite pour faire cette application il faut créer un socket, il
faut établire une connexion entre les clients et le serveur FTP.

moi j'ai trouvé plusieurs commandes comme "ftplib, connet(host, prot), login, socket,....)



et là je ne sais pas quoi faire, en fait j'ai réussi à établire la
connexion avec le serveur mais je n'arrive pas selectionner des
fichiers à partir de ce serveur pour les copiers dans le poste client.

SVP, j'ai besoin de votre aidre, d'urgent, surtout au niveau de la selection des fichier et leur copage

merci d'avance

7 réponses

lambdacrash Messages postés 31 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 11 juillet 2010 13
18 juil. 2005 à 22:20
Salut,

Je pense que dans un premier temps, fait en sorte de simplement
récupérer la liste des fichiers disponibles sur le serveur en émettant
une requete via le socket au dit serveur.

Une fois cette liste reçue, le choix du fichier est à la charge de l'utilisateur (je pense).

En ce qui concerne le découpage des fichiers pour le transfert, je pense ne pas en savoir plus que toi.



Ne disposant pas de ton code, je ne peux que te donner des pistes. J'espère t'avoir très sombrement éclairé....



PS : j'ai déposé, dans la rubrique tutoriel, le lien vers le PDF de M. Swinnen qui est très bien fait, jette un coup d'oeil.

.: Lambdacrash :.
Mon site perso
[mailto:briceouille666@hotmail.com ]
0
lambdacrash Messages postés 31 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 11 juillet 2010 13
18 juil. 2005 à 23:06
Du nouveau pour toi, si tu n'es pas obligé d'utiliser les sockets, par la dessus :

Je te balance du code en vrac mais il y a les bases de ton projet je pense.



Retour de la liste des fichiers et / ou dossier :




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 orienté vers ton besoin :

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.



Teste chaque code un par un pour t'imprégner de la méthode. Bon vent et n'hésite pas j'adore le python ;)

Bon code




.: Lambdacrash :.

Analyste programmeur


Mon site perso
0
lambdacrash Messages postés 31 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 11 juillet 2010 13
18 juil. 2005 à 23:13
Note aux modérateurs : ce sujet mérite d'être gardé car il y a peu de codes Python traitant ce sujet.


Merci

<hr size="2" width="100%">.: Lambdacrash
:.
Analyste programmeur


Mon site perso
0
lambdacrash Messages postés 31 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 11 juillet 2010 13
18 juil. 2005 à 23:45
C'est encore moi,
FTP lib utilise les sockets, si tu dois gérer les sockets d'une façon
particulière, modifie les sources de la librairie.

Bon code.




<hr size="2" width="100%">.: Lambdacrash
:.
Analyste programmeur


Mon site perso
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Erico974 Messages postés 5 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 11 septembre 2009
11 sept. 2009 à 15:12
Salut a tous amis programmateur, je suis nouveau et je ne suis pas tres doue en programmation.
Je m'adresse a vous parce que j'aimerais si possible avoir deux logiciels.
Le premier serait destine a l'organisation d'un tournois de volley ball..en gros j'aimerais avoir: - une premiere fenetre ou je rentre la liste des equipes (pairs ou impaire).
- un bouton ou je doit cliquer pour creer les poules de 4 voir 6 equipes.
- dans les differentes poules avoir la liste des matchs avec des cases resultats.(avec possibilite de choisir les score, match en 1 set de en 25 pts ou en 30 pts ou autres autre que je peux choisir au debut des poules et au debut des phases finales et de la finale( finale en 2 sets gagnants de 25 pts par exemple).
- un classement automatique.
- A la fin des matches avoir un classement finale et ensuite les phases finales.


Le second logiciel, je pense plus simple serait un logiciel de cuisine, ou je pourrais rentrer mes recettes, avec photos et tout avec un moteur de recherche, genre je tape poisson et il me sort un listing des recettes contenant poisson dans les ingredients et j'aurais plus qu'a choisir et a faire un clic sur la recette et avoir ma recette qui s'ouvre....et je voudrais aussi que je puisses rajouter facilement d'autres recettes et d'autres familles.Quand je parle famille c'est dans mon exemple le poisson...
voilà voila s'il y a une ame charitable pour me donner un coup de main et venir a mon aide ca serais super sympa....
Je vous remercie
@++
Eric
0
lambdacrash Messages postés 31 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 11 juillet 2010 13
11 sept. 2009 à 17:02
Ce n'est pas le bon endroit pour poster ce genre de question. D'autre part c'est une question inutile puisque personne ne fera ton travail à ta place.


http://lambdacrash.fr
0
Erico974 Messages postés 5 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 11 septembre 2009
11 sept. 2009 à 17:22
AU MOINS DIT MOI EST CE QUE C'EST POSSIBLE DE REALISER CE QUE JE DEMANDE????ET SURTOUT EST CE QUE C'EST TRES COMPLIQUE??
0
Rejoignez-nous