Загрузка данных


import os

ROOT = r'D:\1LIBS\1delayLM'   # если запускаешь из самой папки — можно оставить '.'

# ВАЖНО: os.rename закомментирован, ничего не изменится
ENCODING_PAIRS = [
    ('cp1257', 'cp866'),    # ĭ -> Л  (главный кандидат)
    ('cp1252', 'cp866'),    # Â -> В
    ('cp1252', 'cp1251'),   # Â -> В (альтернатива)
    ('latin-1', 'cp866'),
    ('latin-1', 'cp1251'),
    ('cp1257', 'cp1251'),
    ('cp1251', 'cp866'),
    ('cp866', 'cp1251'),
]

def try_fix(name):
    for src, dst in ENCODING_PAIRS:
        try:
            fixed = name.encode(src).decode(dst)
            if fixed != name:
                return src, dst, fixed
        except (UnicodeEncodeError, UnicodeDecodeError):
            continue
    return None

for dirpath, dirnames, filenames in os.walk(ROOT):
    for n in dirnames + filenames:
        r = try_fix(n)
        if r:
            src, dst, fixed = r
            print(f'{n!r}  [{src}->{dst}]  =>  {fixed!r}')
        else:
            print(f'{n!r}  -- не подобралось')