Add list_csv_etats: liste valeurs distinctes Etat/Status/Environnement
This commit is contained in:
parent
1c2d0b958e
commit
56f91ca9a8
35
tools/list_csv_etats.py
Normal file
35
tools/list_csv_etats.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
"""Liste les valeurs distinctes des colonnes Etat et Status dans les CSV iTop.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python tools/list_csv_etats.py <csv1> [<csv2> ...]
|
||||||
|
"""
|
||||||
|
import csv
|
||||||
|
import sys
|
||||||
|
from collections import Counter
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print("Usage: python tools/list_csv_etats.py <csv1> [<csv2> ...]")
|
||||||
|
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()
|
||||||
Loading…
Reference in New Issue
Block a user