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