diff --git a/s03souborybetter.py b/s03souborybetter.py index 69bcd2e..ed7a50d 100644 --- a/s03souborybetter.py +++ b/s03souborybetter.py @@ -13,6 +13,15 @@ cesta=r"u:\dropboxtest\Ordinace\Dokumentace_ke_zpracování" # cestazpracovana=r"u:\Dropbox\!!!Days\Downloads Z230\Dokument" cestazpracovana=r"u:\Dropboxtest\Ordinace\Dokumentace_zpracovaná" +def is_encodable_win1250(text: str) -> bool: + try: + text.encode("cp1250") + return True + except UnicodeEncodeError: + return False + +def make_win1250_safe(text: str) -> str: + return text.encode("cp1250", errors="replace").decode("cp1250").replace("?", "_") def restore_files_for_import(retezec): drop=r"u:\Dropbox\!!!Days\Downloads Z230\Dokumentace" @@ -116,6 +125,18 @@ for soubor in os.listdir(cesta): plna_cesta = os.path.join(cesta, soubor) if not os.path.isfile(plna_cesta): continue # skip folders or anything that’s not a regular fil + + if not is_encodable_win1250(soubor): + safe_name = make_win1250_safe(soubor) + novy_plna_cesta = os.path.join(cesta, safe_name) + + print(f"⚠️ Renaming invalid filename:\n {soubor} → {safe_name}") + os.rename(plna_cesta, novy_plna_cesta) + + # Update variable for later processing + soubor = safe_name + plna_cesta = novy_plna_cesta + print(soubor) if kontrola_struktury(soubor,conn): info.append(vrat_info_o_souboru(soubor,conn))