title: Python - download all folders, subfolders, and files with the python ftplib module
body: <p>I have been working all day trying to figure out how to use the python <code>ftplib</code> module to download folders, subfolders, and files from an ftp server but I could only come up with this.</p>
  
  <pre><code>from ftplib import FTP
  import sys, ftplib
  
  sys.tracebacklimit = 0 # Does not display traceback errors
  sys.stderr = "/dev/null" # Does not display Attribute errors
  
  Host = "ftp.debian.org"
  Port = 21
  Username = ""
  Password = ""
  
  def MainClass():
      global ftp
      global con
      Host
      Port
      ftp = FTP()
      con = ftp.connect(Host, Port) # Connects to the host with the specified port
  
  def grabfile():
      source = "/debian/"
      filename = "README.html"
      ftp.cwd(source)
      localfile = open(filename, 'wb')
      ftp.retrbinary('RETR ' + filename, localfile.write)
      ftp.quit()
      localfile.close()
  
  try:
      MainClass()
  except Exception:
      print "Not Connected"
      print "Check the address", Host + ":" + str(Port)
  else:
      print "Connected"
  
  if ftplib.error_perm and not Username == "" and Password == "":
      print "Please check your credentials\n", Username, "\n", Password
  
  credentials = ftp.login(Username, Password)
  grabfile()
  </code></pre>
  
  <p>This python script will download a README.html file from ftp.debian.org but, I would like to be able to download whole folders with files and subfolders in them and I cannot seem to figure that out. I have searched around for different python scripts using this module but I cannot seem to find any that do what I want.</p>
  
  <p>Any suggestions or help would be greatly appreciated.</p>
  
  <p><strong>Note:</strong>
  I would still like to use python for this job but it could be a different module such as <code>ftputil</code> or any other one out there.</p>
  
  <p>Thanks in advance,
  Alex</p>