List files on SFTP server matching wildcard in Python using Paramiko
Or use pysftp which is paramiko wrapper and write something like this:
import pysftp
def store_files_name(fname):
pass
def store_dir_name(dir_name):
pass
def store_other_file_type(other_file):
pass
with pysftp.Connection('server', username='user', password='pass') as sftp:
sftp.walktree('.', store_files_name, store_dir_name, store_other_file_type)
The glob
will not magically start working with a remote server, just because you have instantiated SSHClient
before.
You have to use Paramiko API to list the files, like SFTPClient.listdir
:
import fnmatch
sftp = client.open_sftp()
for filename in sftp.listdir('/home/test'):
if fnmatch.fnmatch(filename, "*.txt"):
print filename
You can also use a regular expression for the matching, if it suits your needs better. See Using wildcard in remote path using Paramiko's SFTPClient.
Side note: Do not use AutoAddPolicy
. You
lose security by doing so. See Paramiko "Unknown Server".