if len(zip_paths) = n and len(filer_paths) = m this method has O(n*m)

You could make it faster by making zip_files a set

    zip _paths = set(cwd_path + x for x in zippy.namelist())

This would result in the method having O(m)