netgescon-master/scripts/Script fatti per prova e per ora sospesi/controlla_condomini_tutte.py

46 lines
1.4 KiB
Python

import json
import pymysql
import os
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
CONFIG_PATH = os.path.join(SCRIPT_DIR, "agent_config.json")
with open(CONFIG_PATH) as f:
config = json.load(f)
MYSQL_HOST = config.get("MySQLHost", "localhost")
MYSQL_USER = config.get("MySQLUser", "user")
MYSQL_PASSWORD = config.get("MySQLPassword", "password")
MYSQL_DB = config.get("MySQLDatabase", "netgescon")
conn = pymysql.connect(
host=MYSQL_HOST,
user=MYSQL_USER,
password=MYSQL_PASSWORD,
db=MYSQL_DB,
charset='utf8mb4'
)
cur = conn.cursor()
cur.execute("SHOW TABLES;")
tutte = [r[0] for r in cur.fetchall()]
trovate = [t for t in tutte if t.startswith("condomin")]
if not trovate:
print(f"Nessuna tabella che inizia con 'condomin' trovata.\nTabelle presenti:\n" + "\n".join(tutte))
else:
totale = 0
for tab in trovate:
cur.execute(f"SELECT COUNT(*) FROM `{tab}`;")
n = cur.fetchone()[0]
print(f"\nTabella: {tab} ({n} record)")
if n > 0:
cur.execute(f"SHOW COLUMNS FROM `{tab}`;")
colonne = [r[0] for r in cur.fetchall()]
cur.execute(f"SELECT * FROM `{tab}`;")
for row in cur.fetchall():
print({col: val for col, val in zip(colonne, row)})
totale += n
print(f"\nTotale condomini in tutte le tabelle 'condomin*': {totale}")
cur.close()
conn.close()