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()