diff --git a/tools/list_csv_etats.py b/tools/list_csv_etats.py new file mode 100644 index 0000000..1ae3841 --- /dev/null +++ b/tools/list_csv_etats.py @@ -0,0 +1,35 @@ +"""Liste les valeurs distinctes des colonnes Etat et Status dans les CSV iTop. + +Usage: + python tools/list_csv_etats.py [ ...] +""" +import csv +import sys +from collections import Counter + + +def main(): + if len(sys.argv) < 2: + print("Usage: python tools/list_csv_etats.py [ ...]") + sys.exit(1) + + for path in sys.argv[1:]: + print(f"\n=== {path} ===") + with open(path, "r", encoding="utf-8-sig", newline="") as f: + sample = f.read(4096); f.seek(0) + delim = ";" if sample.count(";") > sample.count(",") else "," + reader = csv.DictReader(f, delimiter=delim) + rows = list(reader) + print(f"{len(rows)} lignes (delim={delim!r})") + print(f"Colonnes: {list(rows[0].keys()) if rows else []}") + + for col in ("Etat", "État", "Status", "Environnement"): + if rows and col in rows[0]: + c = Counter((r.get(col) or "").strip() for r in rows) + print(f"\n[{col}]") + for v, n in c.most_common(): + print(f" {v!r:30s} {n}") + + +if __name__ == "__main__": + main()