Как переименовать файл
def normalize(item_path):
CYRILLIC_SYMBOLS = "абвгдеёжзийклмнопрстуфхцчшщъыьэюяєіїґ"
TRANSLATION = ("a", "b", "v", "g", "d", "e", "e", "j", "z", "i", "j", "k", "l", "m", "n", "o", "p", "r", "s", "t",
"u", "f", "h", "ts", "ch", "sh", "sch", "", "y", "", "e", "yu", "ya", "je", "i", "ji", "g")
TRANS = {}
for cyril_symb, latin_symb in zip(CYRILLIC_SYMBOLS, TRANSLATION):
TRANS[ord(cyril_symb)] = latin_symb
TRANS[ord(cyril_symb.upper())] = latin_symb.upper()
table = item_path.maketrans(TRANS)
return str(item_path).translate(table)
for file_path in files_paths:
new_name = normalize(split(file_path)[-1].split('.')[0])
os.rename(split(file_path)[-1], new_name + '.' + split(file_path)[-1].split('.')[-1])
Пытаюсь переименовать файлы с русского на английский. Например если файл: Архив.rar нужно его переименовать в Archiv.rar. Но у меня выдаёт ошибку:
Traceback (most recent call last):
File "C:\Projects\Test_Project\Test.py", line 100, in <module>
os.rename(split(file_path)[-1], new_name + '.' + split(file_path)[-1].split('.')[-1])
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'Архив.rar' -> 'Arhiv.rar'
То есть я правильно беру по срезам все, но не понимаю почему не работает.
Источник: Stack Overflow на русском