'How to download specified extension type of files from FTP server using python [duplicate]

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


Solution 1:[1]

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)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Christian Sloper