SFTP in Python? (Piattaforma indipendente)

| | | | | |

Sto lavorando a un semplice strumento che trasferisce i file in una posizione codificata con la password anche codificata. Sono un principiante di Python, ma grazie a ftplib è stato facile:

 import ftplib info= ("someuser", "password") #hardcoded def putfile(file, site, dir, user=(), verbose=True): """ carica un file tramite ftp su un sito /directory login hardcoded, trasferimento binario """ se dettagliato: print "Caricamento in corso", file local = open(file, "rb") remote = ftplib.FTP(site) remote.login(*user) remote.cwd( dir) remote.storbinary("STOR " + file, local, 1024) remote.quit() local.close() if verbose: print "Caricamento completato." if __name__ == "__main__": site = "da qualche parte.com" #hard-coded dir = "./uploads/" #hard-coded import sys, getpass putfile(sys.argv[1], site, dir, user= info) 

Il problema è che non riesco a trovare nessuna libreria che supporti sFTP. Qual è il modo normale per fare qualcosa del genere in modo sicuro?

Modifica: grazie alle risposte qui, ho funzionato con Paramiko e questa era la sintassi.

import paramiko host = "THEHOST.com" #hard -coded port = 22 transport = paramiko.Transport((host, port)) password = "THEPASSWORD" #hard-coded username = "THEUSERNAME" #hard-coded transport.connect(username = username, password = password) sftp = paramiko .SFTPClient.from_transport(transport) import sys path = "./THETARGETDIRECTORY/" + sys.argv[1] #hard-coded localpath = sys.argv[1] sftp.put(localpath, path) sftp.close() trasporto .close() print "Caricamento completato." 

Grazie ancora!