0

I am trying to download each .txt file from my FTP server using python but as of now I only have one file being downloaded that is specified by it's name. Does anyone know the way I can change it to download all of the .txt files from my server?

    # connect to the FTP server
    ftp = FTP(FTP_HOST, FTP_USER, FTP_PASS)

    ftp.encoding = "utf-8"

    ftp.cwd('/files')
    ftp.retrlines('LIST')

    with open('test.txt', 'wb') as fp:
        ftp.retrbinary('RETR test.txt', fp.write)

    ftp.quit()

1 Answers1

0

Something like this should work fine:

import fnmatch

with FTP(FTP_HOST,FTP_USER,FTP_PASS) as ftp:
        ftp.encoding = "utf-8"
        ftp.cwd('/files')
        for filename in ftp.nlst():
            if fnmatch.fnmatch(filename, '*.txt'):
                 with open(filename, 'wb') as fp:
                      ftp.retrbinary(f'RETR {filename}', fp.write)
Christian Sloper
  • 7,440
  • 3
  • 15
  • 28