Sposta CSV dell'ultimo ciclo e grafici nella cartella 'output'

cv_last_cycle.py accetta ora una cartella di output separata da quella
di input; main.py legge da 'raw' (dove restano .txt e CSV intermedio) e
scrive i CSV dell'ultimo ciclo e i PNG in 'output'.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-13 23:14:04 +02:00
parent ffe638842f
commit b33d9a81cc
3 changed files with 24 additions and 18 deletions
+7 -4
View File
@@ -71,17 +71,20 @@ def extract_last_cycle(input_path: Path, output_path: Path) -> None:
def main(argv: list[str]) -> None: def main(argv: list[str]) -> None:
folder = Path(argv[1]) if len(argv) > 1 else Path(__file__).parent input_folder = Path(argv[1]) if len(argv) > 1 else Path(__file__).parent
output_folder = Path(argv[2]) if len(argv) > 2 else input_folder
output_folder.mkdir(parents=True, exist_ok=True)
csv_files = sorted( csv_files = sorted(
p for p in folder.glob("*.csv") if not p.stem.endswith(SUFFIX) p for p in input_folder.glob("*.csv") if not p.stem.endswith(SUFFIX)
) )
if not csv_files: if not csv_files:
print(f"Nessun file .csv trovato in {folder}") print(f"Nessun file .csv trovato in {input_folder}")
return return
for csv_file in csv_files: for csv_file in csv_files:
output_path = csv_file.with_name(csv_file.stem + SUFFIX + ".csv") output_path = output_folder / (csv_file.stem + SUFFIX + ".csv")
try: try:
extract_last_cycle(csv_file, output_path) extract_last_cycle(csv_file, output_path)
print(f"OK {csv_file.name} -> {output_path.name}") print(f"OK {csv_file.name} -> {output_path.name}")
+17 -14
View File
@@ -2,13 +2,11 @@
Prende i file .txt grezzi dalla cartella 'raw' (nella root del progetto) Prende i file .txt grezzi dalla cartella 'raw' (nella root del progetto)
e li elabora nell'ordine: e li elabora nell'ordine:
1. cv_to_csv -> CSV a due colonne (Potential/V, Current/A) 1. cv_to_csv -> CSV a due colonne (Potential/V, Current/A), dentro 'raw'
2. cv_last_cycle -> isola l'ultimo ciclo completo 2. cv_last_cycle -> isola l'ultimo ciclo completo, salvato in 'output'
3. cv_normalize_potential -> aggiunge il potenziale normalizzato 3. cv_normalize_potential -> aggiunge il potenziale normalizzato (in 'output')
4. cv_current_over_sqrt_scanrate -> aggiunge le colonne derivate dalla corrente 4. cv_current_over_sqrt_scanrate -> aggiunge le colonne derivate dalla corrente (in 'output')
5. cv_plot -> genera il grafico PNG per ciascun file 5. cv_plot -> genera il grafico PNG per ciascun file (in 'output')
Tutti i file intermedi e i risultati vengono creati dentro 'raw'.
""" """
import sys import sys
@@ -21,6 +19,7 @@ import cv_current_over_sqrt_scanrate
import cv_plot import cv_plot
RAW_DIR = Path(__file__).parent / "raw" RAW_DIR = Path(__file__).parent / "raw"
OUTPUT_DIR = Path(__file__).parent / "output"
def main() -> None: def main() -> None:
@@ -28,17 +27,21 @@ def main() -> None:
print(f"Cartella 'raw' non trovata: creala e mettici dentro i file .txt da elaborare ({RAW_DIR})") print(f"Cartella 'raw' non trovata: creala e mettici dentro i file .txt da elaborare ({RAW_DIR})")
return return
steps = [ OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
("Conversione .txt -> .csv", cv_to_csv),
("Estrazione ultimo ciclo", cv_last_cycle), print("\n=== Conversione .txt -> .csv ===")
cv_to_csv.main(["", str(RAW_DIR)])
print("\n=== Estrazione ultimo ciclo ===")
cv_last_cycle.main(["", str(RAW_DIR), str(OUTPUT_DIR)])
for label, module in [
("Normalizzazione potenziale", cv_normalize_potential), ("Normalizzazione potenziale", cv_normalize_potential),
("Colonne corrente/velocita' di scansione", cv_current_over_sqrt_scanrate), ("Colonne corrente/velocita' di scansione", cv_current_over_sqrt_scanrate),
("Generazione grafici", cv_plot), ("Generazione grafici", cv_plot),
] ]:
for label, module in steps:
print(f"\n=== {label} ===") print(f"\n=== {label} ===")
module.main(["", str(RAW_DIR)]) module.main(["", str(OUTPUT_DIR)])
if __name__ == "__main__": if __name__ == "__main__":
View File