/
ilya.petrash
/
SimplePyScripts
Обзор
Документация
Войти
/
ilya.petrash
/
SimplePyScripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
job_compassplus/tx_parse_xml/export_ids.py
49 строк
1 KB
gil9red
Added "job_compassplus/tx_parse_xml/export_ids.py"
16 фев 2025, 12:43
16 фев 2025, 12:43
2d57b9d
Код
Авторство
О чём код?
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = "ipetrash" import re from pathlib import Path PATTERN_ID: re.Pattern = re.compile(rb'\bId="([a-zA-Z]{3}\w+)"') def process(path_layer: Path, path_extract: Path): if not path_layer.exists(): raise Exception(f"Not exists: {path_layer}") items: set[bytes] = set() for f in path_layer.rglob("*.xml"): # TODO: Добавить статистику: файлы, количество найденных ids: list[bytes] = PATTERN_ID.findall(f.read_bytes()) print(f"{f} ids: {len(ids)}") items.update(ids) with open(path_extract, "wb") as f: for value in items: f.write(value + b"\n") if __name__ == "__main__": import argparse parser = argparse.ArgumentParser( description="Exporting IDs to a file" ) parser.add_argument( "path_layer", metavar="/PATH/TO/TRUNK/LAYER", help="Path to layer (the directory containing layer.xml)", type=Path, ) parser.add_argument( "path_extract", help="Path to extract", type=Path, ) args = parser.parse_args() process(args.path_layer, args.path_extract)