import zipfile import os import shutil import glob def unzip_all(src, out="data"): shutil.rmtree(out, ignore_errors=True) os.mkdir(out) shutil.copy(src, f"{out}/bomb.zip") layer = 0 while zips := glob.glob(f"{out}/*.zip"): z = zips[0] with zipfile.ZipFile(z) as f: names = f.namelist() f.extractall(out) os.remove(z) for n in names: p = os.path.join(out, n) if not n.endswith(".zip") and "flag" not in n and os.path.isfile(p): os.remove(p) layer += 1 print(f"Done after {layer} layers.") if __name__ == "__main__": unzip_all("./bomb.zip")