import zipfile, re z = zipfile.ZipFile(r"F:\project\xian\xian_algorithm_new\app\data\template\rainfall\暴雨避难场所分布图.qgz") c = z.read([n for n in z.namelist() if n.endswith('.qgs')][0]).decode() layers = re.findall(r']*>(.*?)', c, re.DOTALL) for i, l in enumerate(layers): nm = re.search(r'([^<]+)', l) pv = re.search(r']*>(\w+)', l) ds = re.search(r'(.*?)', l, re.DOTALL) name = nm.group(1) if nm else '?' prov = pv.group(1) if pv else '?' ds_text = ds.group(1).strip()[:120] if ds else '' print(f"{i:2d}. [{prov:10s}] {name}") if ds_text: print(f" ds: {ds_text}")