Je voudrais faire un script pour télécharger un fichier sur FTP.
Comment le système de connexion fonctionnerait-il ? Je cherche quelque chose comme ceci :
ftp.login=(mylogin)
ftp.pass=(mypass)
Et tout autre identifiant de connexion.
Je voudrais faire un script pour télécharger un fichier sur FTP.
Comment le système de connexion fonctionnerait-il ? Je cherche quelque chose comme ceci :
ftp.login=(mylogin)
ftp.pass=(mypass)
Et tout autre identifiant de connexion.
Utilisez ftplib
vous pouvez l'écrire comme ceci :
import ftplib
session = ftplib.FTP('server.address.com','USERNAME','PASSWORD')
file = open('kitten.jpg','rb') # file to send
session.storbinary('STOR kitten.jpg', file) # send the file
file.close() # close file and FTP
session.quit()
Utilisez ftplib.FTP_TLS
à la place si votre hôte FTP requiert TLS.
Pour le récupérer, vous pouvez utiliser urllib.retrieve
:
import urllib
urllib.urlretrieve('ftp://server/path/to/file', 'file')
EDITAR :
Pour connaître le répertoire courant, utilisez FTP.pwd()
:
FTP.pwd() : Renvoie le nom de chemin du répertoire courant sur le serveur.
Pour changer de répertoire, utilisez FTP.cwd(pathname)
:
FTP.cwd(nom du chemin) : Définit le répertoire courant sur le serveur.
ftplib maintenant soutient les gestionnaires de contexte donc je suppose que cela peut être rendu encore plus facile
from ftplib import FTP
from pathlib import Path
file_path = Path('kitten.jpg')
with FTP('server.address.com', 'USER', 'PWD') as ftp, open(file_path, 'rb') as file:
ftp.storbinary(f'STOR {file_path.name}', file)
Il n'est pas nécessaire de fermer le fichier ou la session
Vous voudrez probablement utiliser l'option Module ftplib pour python
import ftplib
ftp = ftplib.FTP()
host = "ftp.site.uk"
port = 21
ftp.connect(host, port)
print (ftp.getwelcome())
try:
print ("Logging in...")
ftp.login("yourusername", "yourpassword")
except:
"failed to login"
Cela vous permet de vous connecter à un serveur FTP. Ce que vous faites à partir de là dépend de vous. Votre question n'indique pas d'autres opérations qui doivent vraiment être effectuées.
Essayez ça :
#!/usr/bin/env python
import os
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username="username", password="password")
sftp = ssh.open_sftp()
localpath = '/home/e100075/python/ss.txt'
remotepath = '/home/developers/screenshots/ss.txt'
sftp.put(localpath, remotepath)
sftp.close()
ssh.close()
Pour éviter d'obtenir l'erreur de cryptage, vous pouvez également essayer les commandes suivantes
ftp = ftplib.FTP_TLS("ftps.dummy.com")
ftp.login("username", "password")
ftp.prot_p()
file = open("filename", "rb")
ftp.storbinary("STOR filename", file)
file.close()
ftp.close()
ftp.prot_p() s'assurer que vos connexions sont cryptées
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.