Jak přenést nebo stáhnout soubor/y z FTP? Zde je pár praktických ukázek...

ftplib - nízkoúrovňový modul - vestavěný

download

   import ftplib, sys

   def getbinary(ftp, filename):
       objekt = file('pokus.txt', 'w') #vytvoříme a otevřeme si soubor, kam se to bude kopírovat
       return ftp.retrbinary("RETR " + filename, objekt.write) 

   ftp = ftplib.FTP("ftp.wz.cz")
   ftp.login("xxx.wz.cz", "heslo")

   x = getbinary(ftp, "index.php") #stahovaný soubor je index.php

upload

   import ftplib

   ftp = ftplib.FTP('')                       
   ftp.connect('ftp.domain.com')             #  Pripojeni na server - adresa
   ftp.login('user', 'password')      #  username a heslo

   ftp.cwd('kapka')                      # zmena adresare  - jako cd v DOSu
   ftp.retrlines('LIST')                 # vypis adresare jako DIR
   soubor=file("i:/brutus.py ", 'rb')    # soubor ktery chci prenest se musi otevrit pro binarni cteni - ("rb")
   print ftp.storbinary( "STOR "+ "brutus.py", soubor) # prenese soubor na server
   ftp.quit() #konec spojeni

ftputil - vysokoúrovňový modul - nutno nainstalovat

Domácí stránka modulu: http://ftputil.sschwarzer.net/

download

   import ftputil

   host=ftputil.FTPHost('ftp.domain.com', 'user', 'password')
   names = host.listdir(host.curdir)
   for name in names:
       if host.path.isfile(name):
           print name
           host.download(name, name, 'b')  # remote, local, binary mode 

   host.close()

upload

   import ftputil, os

   # connect 
   host=ftputil.FTPHost('ftp.domain.com', 'user', 'password')

   # definice
   dirNameLocal=r'i:/www/Kapka'
   dirNameFTP='kapka'
   fileName='aktuality.htm'

   # vyroba cest
   myFileLocal=os.path.join(dirNameLocal,fileName)
   myFileFTP=dirNameFTP+'/'+fileName

   # tvorba ciloveho adresare        
   if not host.path.exists(dirNameFTP):
      host.mkdir(dirNameFTP)

   # prenos, pokud je soubor novejsi
   print host.upload_if_newer(myFileLocal, myFileFTP)

   # uklidime po sobe
   host.close()