M2Cypto hat ein FTPS-Modul. Aus der Dokumentation:
>>> from M2Crypto import ftpslib
>>> f = ftpslib.FTP_TLS()
>>> f.connect('', 9021)
'220 spinnaker.dyndns.org M2Crypto (Medusa) FTP/TLS server v0.07 ready.'
>>> f.auth_tls()
>>> f.set_pasv(0)
>>> f.login('ftp', 'ngps@')
'230 Ok.'
>>> f.retrlines('LIST')
-rw-rw-r-- 1 0 198 2326 Jul 3 1996 apache_pb.gif
drwxrwxr-x 7 0 198 1536 Oct 10 2000 manual
drwxrwxr-x 2 0 198 512 Oct 31 2000 modpy
drwxrwxr-x 2 0 198 512 Oct 31 2000 bobo
drwxr-xr-x 2 0 198 14336 May 28 15:54 postgresql
drwxr-xr-x 4 100 198 512 May 16 17:19 home
drwxr-xr-x 7 100 100 3584 Sep 23 2000 openacs
drwxr-xr-x 10 0 0 512 Aug 5 2000 python1.5
-rw-r--r-- 1 100 198 326 Jul 29 03:29 index.html
drwxr-xr-x 12 0 0 512 May 31 17:08 python2.1
'226 Transfer complete'
>>> f.quit()
'221 Goodbye.'
>>>
Alternativ, wenn Sie die Verwendung von Drittanbieter-Modulen minimieren möchten, sollten Sie in der Lage sein, die ftplib.FTP-Klasse der Standardbibliothek mit der integrierten (in Python) SSL-Unterstützung zu unterklassifizieren. M2Crypto (oder Twisted, wenn Sie diesen Weg gehen möchten) ist jedoch die einfachere Lösung.