Télécharger des dossiers à partir du système local vers FTP à l'aide d'un script Python
J'ai télécharger automatiquement des dossiers sur un site FTP à l'aide d'un script Python. Je suis en mesure de télécharger un seul fichier, mais pas les dossiers avec des sous-dossiers et fichiers qu'ils contiennent. J'ai fait beaucoup de recherche, mais a échoué. Peut-on m'aider ici? Merci à l'avance.
#! /usr/bin/python
import ftplib
s = ftplib.FTP('serverip','usrname','password')
file = '/home/rock/test.txt'
ftppath = '/IT'
filename = "rak"
s.cwd(ftppath)
f = open(file,'rb')
s.storbinary('STOR ' + filename, f)
f.close()
s.quit()
Pourriez-vous fournir votre code s'il vous plaît?
eh bien, vous allez devoir faire une boucle sur les fichiers et les dossiers et l'exécution de votre code de travail pour chaque fichier. Sinon, comment espérez-vous faire cela?
eh bien, vous allez devoir faire une boucle sur les fichiers et les dossiers et l'exécution de votre code de travail pour chaque fichier. Sinon, comment espérez-vous faire cela?
OriginalL'auteur Rakesh | 2011-04-14
Vous devez vous connecter pour publier un commentaire.
En gros, vous avez besoin d'utiliser des os.marche() pour récupérer ces fichiers et de les transférer.
Voici un script que j'ai écrit pour moi-même à faire beaucoup de ce que votre demande.
Je l'ai écrit il y a longtemps, donc je le ferais probablement différemment si je l'ai écrit de nouveau, mais je reçois beaucoup d'utilisation hors de lui.
Importations de psftplib, qui est un wrapper j'ai écrit pour le mastic sftp.
N'hésitez pas à retirer ces références, ou s'emparer de la lib:
http://code.google.com/p/psftplib/source/browse/trunk/psftplib.py
votre lien est mort.
Mise à jour du lien ici
OriginalL'auteur monkut
Je suis récemment tombé sur ce problème et a trouvé une fonction récursive pour le résoudre.
Nice, une petite question: à l'aide de
os.path.join
aurait assurez-vous que votre code ne dépend pas du système d'exploitation.Si vous rencontrez des problèmes, de modifier tout le chemin + r'\{}'.format(f) pour tout simplement de f. De cette façon, il a travaillé pour moi - l'original n'a pas.
La solution la plus élégante que j'ai trouvé. A travaillé comme un charme. +1
OriginalL'auteur Edgard
MODIFIER 20/12/2017:
J'ai écrit un projet sur GitHub à cette fin. Cliquez pour plus de détails!
Il y a des bonnes réponses ci-dessus, mais je veux aussi ajouter une bonne utilisation de ftputil paquet. Si vous avez besoin de télécharger des fichiers à partir du répertoire local de répertoire ftp, vous pouvez utiliser cette fonction récursive:
Si vous décidez d'utiliser cette fonction, vous devez vous connecter en ftp à l'aide de ftputil paquet. Pour cela, vous pouvez utiliser cet extrait:
Donc, nous avons presque terminé. La dernière chose est l'utilisation de la fonction pour les débutants comme moi:
La chose la plus importante est le caractère "/" à la fin de chemins. Vous avez besoin de la mettre à la fin. Enfin, je tiens à partager l'ensemble des code:
/
à la fin delocal_dir
etftp_dir
OriginalL'auteur Ceylan B.
Peut-être que vous essayez de ftpsync.py. Si celui-ci n'a pas d'aide, essayez de recherche google sur python ftpsync et vous obtenez beaucoup de réponses.
ftpsync
, qui est un script Perl, savannah.gnu.org/projects/ftpsyncOriginalL'auteur razong
Il est facile à utiliser lftp pour télécharger les dossiers sur un site FTP. Je l'utilise dans mon script Python pour déplacer des dossiers FTP
Script Python:
#! /usr/bin/python
ftp_script:
OriginalL'auteur Rakesh
utilisant ftputil:
OriginalL'auteur andresp