from pathlib import Path def get_all_but_last_n(p: Path, n: int, hostname): files = list(p.glob("*.tar.gz")) hostname_files = list(filter(lambda f: f.name.split("__")[1] == hostname, files)) sorted_files = sorted( hostname_files, key=lambda f: int(f.name.split("__")[0]), reverse=True ) return sorted_files[n:]