Python: download a file from an FTP server

Python: download a file from an FTP server

requests library doesnt support ftp links.

To download a file from FTP server you could:

import urllib 

urllib.urlretrieve(ftp://server/path/to/file, file)
# if you need to pass credentials:
#   urllib.urlretrieve(ftp://username:[email protected]/path/to/file, file)

Or:

import shutil
import urllib2
from contextlib import closing

with closing(urllib2.urlopen(ftp://server/path/to/file)) as r:
    with open(file, wb) as f:
        shutil.copyfileobj(r, f)

Python3:

import shutil
import urllib.request as request
from contextlib import closing

with closing(request.urlopen(ftp://server/path/to/file)) as r:
    with open(file, wb) as f:
        shutil.copyfileobj(r, f)

You Can Try this

import ftplib

path = pub/Health_Statistics/NCHS/nhanes/2001-2002/
filename = L28POC_B.xpt

ftp = ftplib.FTP(Server IP) 
ftp.login(UserName, Password) 
ftp.cwd(path)
ftp.retrbinary(RETR  + filename, open(filename, wb).write)
ftp.quit()

Python: download a file from an FTP server

Try using the wget library for python. You can find the documentation for it here.

import wget
link = ftp://example.com/foo.txt
wget.download(link)

Leave a Reply

Your email address will not be published. Required fields are marked *