def remove_files_from_directory(client: paramiko.SFTPClient, root): for i in client.listdir_attr(root): server_path = os.path.join(root, i.filename) if stat.S_ISDIR(i.st_mode): remove_files_from_directory(client, server_path) elif stat.S_ISREG(i.st_mode): client.remove(server_path) else: raise RuntimeError(f"Don't know what to do with {server_path}") print(f"Removed {server_path}") client.rmdir(root) print(f"Removed {root}")