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:
+7
-4
@@ -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}")
|
||||||
|
|||||||
@@ -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__":
|
||||||
|
|||||||
Reference in New Issue
Block a user