diff --git a/cv_last_cycle.py b/cv_last_cycle.py index 42ce8f8..b1e9b9d 100644 --- a/cv_last_cycle.py +++ b/cv_last_cycle.py @@ -71,17 +71,20 @@ def extract_last_cycle(input_path: Path, output_path: Path) -> 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( - 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: - print(f"Nessun file .csv trovato in {folder}") + print(f"Nessun file .csv trovato in {input_folder}") return 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: extract_last_cycle(csv_file, output_path) print(f"OK {csv_file.name} -> {output_path.name}") diff --git a/main.py b/main.py index 5ef773a..6e0edac 100644 --- a/main.py +++ b/main.py @@ -2,13 +2,11 @@ Prende i file .txt grezzi dalla cartella 'raw' (nella root del progetto) e li elabora nell'ordine: -1. cv_to_csv -> CSV a due colonne (Potential/V, Current/A) -2. cv_last_cycle -> isola l'ultimo ciclo completo -3. cv_normalize_potential -> aggiunge il potenziale normalizzato -4. cv_current_over_sqrt_scanrate -> aggiunge le colonne derivate dalla corrente -5. cv_plot -> genera il grafico PNG per ciascun file - -Tutti i file intermedi e i risultati vengono creati dentro 'raw'. +1. cv_to_csv -> CSV a due colonne (Potential/V, Current/A), dentro 'raw' +2. cv_last_cycle -> isola l'ultimo ciclo completo, salvato in 'output' +3. cv_normalize_potential -> aggiunge il potenziale normalizzato (in 'output') +4. cv_current_over_sqrt_scanrate -> aggiunge le colonne derivate dalla corrente (in 'output') +5. cv_plot -> genera il grafico PNG per ciascun file (in 'output') """ import sys @@ -21,6 +19,7 @@ import cv_current_over_sqrt_scanrate import cv_plot RAW_DIR = Path(__file__).parent / "raw" +OUTPUT_DIR = Path(__file__).parent / "output" 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})") return - steps = [ - ("Conversione .txt -> .csv", cv_to_csv), - ("Estrazione ultimo ciclo", cv_last_cycle), + OUTPUT_DIR.mkdir(parents=True, exist_ok=True) + + 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), ("Colonne corrente/velocita' di scansione", cv_current_over_sqrt_scanrate), ("Generazione grafici", cv_plot), - ] - - for label, module in steps: + ]: print(f"\n=== {label} ===") - module.main(["", str(RAW_DIR)]) + module.main(["", str(OUTPUT_DIR)]) if __name__ == "__main__": diff --git a/output/.gitkeep b/output/.gitkeep new file mode 100644 index 0000000..e69de29