Vai al contenuto
PROMPTARIO
ScriptRISORSA 276

Profilo degli errori di log per il lavoro personale

PubblicatoWeb: da classificare

Script Python in sola lettura per contare livelli ed eventi ricorrenti in un log nel settore produttività, con verifica sulla fonte.

Strumenti
Python 3.10+
Livello
Intermedio
Setup
4 min
Risultato
Codice

A cosa serve

Script Python in sola lettura per contare livelli ed eventi ricorrenti in un log nel settore produttività, con verifica sulla fonte.

Quando usarlo

Quando il tuo obiettivo è ottenere questo risultato: Un resoconto in sola lettura per il lavoro personale, con anomalie e limiti visibili e nessuna modifica automatica.

Cosa preparare

  • Salva il codice come audit_produttivita_errori_log.py.
  • Eseguilo localmente passando un file o una cartella di prova, senza dati sensibili non necessari.
Istruzioni complete della risorsa
  1. Salva il codice come audit_produttivita_errori_log.py.
  2. Eseguilo localmente passando un file o una cartella di prova, senza dati sensibili non necessari.
  3. Controlla ogni segnalazione sul materiale originale prima di correggere o condividere dati.

Configura la risorsa

Variabili

Questo contenuto non contiene variabili compilabili. Leggi le istruzioni prima di copiarlo.

I valori restano in questa pagina e si perdono alla chiusura. Non inserire password o dati sensibili non necessari.

Controlla

Completa le variabili, poi premi “Controlla il prompt”.

Verifica se il tuo caso richiede fonti aggiornate o ricerca web.

Prompt

import argparse import csv import hashlib import json import re from collections import Counter from pathlib import Path from urllib.parse import urlparse MODE = "errori-log" CONTEXT = "il lavoro personale" REQUIRED_FIELDS = ["id","attivita","stato"] parser = argparse.ArgumentParser(description="Profilo degli errori di log: contare livelli ed eventi ricorrenti in un log.") parser.add_argument("percorso", type=Path, help="File o cartella da analizzare in sola lettura") args = parser.parse_args() path = args.percorso def print_csv_report(file_path): with file_path.open(newline="", encoding="utf-8-sig", errors="replace") as handle: rows = list(csv.DictReader(handle)) headers = list(rows[0].keys()) if rows else [] print(f"Contesto: {CONTEXT}; righe: {len(rows)}; colonne: {len(headers)}") if MODE == "duplicati-csv": key = REQUIRED_FIELDS[0] counts = Counter((row.get(key) or "").strip() for row in rows) for value, count in counts.most_common(): if value and count > 1: print(f"duplicato {key}={value!r}: {count}") elif MODE == "campi-vuoti-csv": for line, row in enumerate(rows, 2): missing = [field for field in REQUIRED_FIELDS if not (row.get(field) or "").strip()] if missing: print(f"riga {line}: campi vuoti {', '.join(missing)}") elif MODE == "righe-incoerenti-csv": for line, row in enumerate(rows, 2): if None in row: print(f"riga {line}: celle oltre le intestazioni") elif MODE == "intestazioni-csv": for header in headers: preview = re.sub(r"[^a-z0-9]+", "_", header.lower()).strip("_") print(f"{header!r} -> {preview!r}") elif MODE == "valori-numerici-csv": for header in headers: values = [] for row in rows: try: values.append(float((row.get(header) or "").replace(",", "."))) except ValueError: pass if values: print(f"{header}: n={len(values)} min={min(values)} max={max(values)} media={sum(values)/len(values):.2f}") elif MODE == "date-csv": pattern = re.compile(r"^\d{4}-\d{2}-\d{2}$") for header in headers: values = [(row.get(header) or "").strip() for row in rows] valid = sum(bool(pattern.match(value)) for value in values if value) if valid: print(f"{header}: date ISO valide={valid}; altri valori={len([v for v in values if v])-valid}") elif MODE == "categorie-csv": for header in headers: counts = Counter((row.get(header) or "").strip() for row in rows) if 1 < len(counts) <= 30: print(f"{header}: {counts.most_common(10)}") else: for header in headers: lengths = [len((row.get(header) or "").strip()) for row in rows] if lengths: print(f"{header}: min={min(lengths)} max={max(lengths)} media={sum(lengths)/len(lengths):.1f}") def print_json_report(file_path): data = json.loads(file_path.read_text(encoding="utf-8")) items = data if isinstance(data, list) else [data] print(f"Contesto: {CONTEXT}; elementi: {len(items)}") if MODE == "campi-json": for index, item in enumerate(items): missing = [field for field in REQUIRED_FIELDS if not isinstance(item, dict) or item.get(field) in (None, "")] if missing: print(f"elemento {index}: mancanti {', '.join(missing)}") elif MODE == "id-json": values = [item.get(REQUIRED_FIELDS[0]) for item in items if isinstance(item, dict)] for value, count in Counter(values).items(): if value in (None, "") or count > 1: print(f"id={value!r}: occorrenze={count}") else: types = {} for item in items: if isinstance(item, dict): for key, value in item.items(): types.setdefault(key, Counter())[type(value).__name__] += 1 for key in sorted(types): print(f"{key}: {dict(types[key])}") def print_text_report(file_path): text = file_path.read_text(encoding="utf-8", errors="replace") if MODE == "struttura-markdown": for line_number, line in enumerate(text.splitlines(), 1): if re.match(r"^#{1,6}\s", line): print(f"{line_number}: {line}") elif MODE == "link-markdown": for target in re.findall(r"(?<!!)\[[^]]*\]\(([^)]+)\)", text): print(f"link: {target}") elif MODE == "errori-log": levels = Counter(match.upper() for match in re.findall(r"\b(DEBUG|INFO|WARN|ERROR|CRITICAL)\b", text, re.I)) print(dict(levels)) else: urls = [line.strip() for line in text.splitlines() if line.strip()] for value, count in Counter(urls).items(): parsed = urlparse(value) status = "valido" if parsed.scheme in {"http", "https"} and parsed.netloc else "da verificare" print(f"{value}: {status}; occorrenze={count}") if MODE == "inventario-cartella": files = [item for item in path.rglob("*") if item.is_file()] by_suffix = Counter(item.suffix.lower() or "[senza estensione]" for item in files) print(f"Contesto: {CONTEXT}; file: {len(files)}; byte: {sum(item.stat().st_size for item in files)}") for suffix, count in by_suffix.most_common(): print(f"{suffix}: {count}") elif MODE == "hash-file": files = [path] if path.is_file() else [item for item in path.rglob("*") if item.is_file()] for item in sorted(files): digest = hashlib.sha256(item.read_bytes()).hexdigest() print(f"{digest} {item}") elif MODE.endswith("-json") or MODE in {"campi-json", "id-json", "tipi-json"}: print_json_report(path) elif MODE in {"struttura-markdown", "link-markdown", "errori-log", "url-testo"}: print_text_report(path) else: print_csv_report(path) print("Analisi completata in sola lettura: verificare i risultati sulla fonte prima di correggere i dati.")

Usa

Incolla il contenuto nello strumento AI scelto. Aggiungi gli allegati richiesti e verifica la risposta con la checklist della scheda.

La copia non avvia il modello e non invia dati.

Esempio

Un esempio documentato non è ancora disponibile per questa risorsa.

Risultato atteso

Un resoconto in sola lettura per il lavoro personale, con anomalie e limiti visibili e nessuna modifica automatica.

Cosa controllare

  • Confronta il risultato con i dati di partenza.
  • Verifica fatti, nomi, numeri e passaggi prima dell’uso.
  • Non considerare la risposta dell’AI come una verifica indipendente.

Stato del test

PubblicatoWeb: da classificare

Pubblicato nel catalogo. Non è disponibile un rapporto di prova collegato a questa versione: modello, input, output e limiti devono ancora essere documentati.

Ultimo controllo documentato: non disponibile.

Data di test dichiarata nella scheda precedente: 9 set 2026 — sintassi e prove automatiche locali. Da sola non costituisce una verifica.

Cosa significano i badge
Pubblicato
Disponibile nel catalogo; non attesta una prova.
Testato
Prova documentata sulla stessa versione, con modello, dati e limiti.
Verificato
Risultato della prova controllato anche da un revisore identificato.
Da aggiornare
Una modifica, una scadenza o un problema richiedono un nuovo controllo.

0 variabili · risparmio indicativo dichiarato: 45 min / controllo.

04

Continua con risorse collegate

Collegamenti scelti per categoria, strumenti e obiettivo. Apri soltanto ciò che serve al tuo prossimo passaggio.

PromptProduttività

Preparazione della riunione per il lavoro personale

Metodo per arrivare a una riunione con contesto, decisioni e domande mirate nel settore produttività, con fonti, limiti e verifica finale.

ChatGPT + Claude + Gemini · IntermedioApri la risorsa
AutomazioneProduttività

Proposta di archiviazione per il lavoro personale

Flusso controllato per elencare elementi candidati senza rimuoverli nel settore produttività, con approvazione umana degli effetti esterni.

Make + n8n + Fogli di calcolo · IntermedioApri la risorsa
ScriptProduttività

Audit dei duplicati CSV per il lavoro personale

Script Python in sola lettura per contare valori ripetuti nella colonna chiave nel settore produttività, con verifica sulla fonte.

Python 3.10+ · BaseApri la risorsa
ScriptProduttività

Audit dei campi vuoti CSV per il lavoro personale

Script Python in sola lettura per segnalare righe con campi obbligatori vuoti nel settore produttività, con verifica sulla fonte.

Python 3.10+ · IntermedioApri la risorsa
ScriptProduttività

Audit delle righe CSV per il lavoro personale

Script Python in sola lettura per individuare righe con un numero anomalo di celle nel settore produttività, con verifica sulla fonte.

Python 3.10+ · AvanzatoApri la risorsa
ScriptProduttività

Inventario delle intestazioni CSV per il lavoro personale

Script Python in sola lettura per normalizzare in anteprima i nomi delle colonne nel settore produttività, con verifica sulla fonte.

Python 3.10+ · BaseApri la risorsa