Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from googletrans import Translator
- import os
- import re
- # Функция за превод на име от български на английски и форматиране
- def translate_and_format_name(bulgarian_name):
- translator = Translator()
- translated = translator.translate(bulgarian_name, src='en', dest='bg')
- translated_text = translated.text.lower().replace(" ", "_")
- translated_text = re.sub(r'[-\s]+', '_', translated_text)
- translated_text = re.sub(r'_+', '_', translated_text) # Замяна на всички последователни подчертаващи знаци с единичен
- return translated_text
- # Път до главната папка, в която ще промени имената на директориите
- main_directory = input(r'f:movies')
- # Обхождане на всички директории в главната папка
- for dirpath, dirnames, filenames in os.walk(main_directory):
- for dirname in dirnames:
- old_path = os.path.join(dirpath, dirname)
- # Проверка дали името на директорията е на български
- if any(c.isalpha() for c in dirname) and not any(c.isalpha() for c in dirname):
- print(f'Прескачане на директорията "{dirname}", тъй като е на английски.')
- continue
- new_name_en = translate_and_format_name(dirname)
- new_path = os.path.join(dirpath, new_name_en)
- # Проверка дали името вече е преведено и форматирано
- if new_name_en == dirname:
- print(f'Прескачане на директорията "{dirname}", тъй като е вече преведено и форматирано.')
- continue
- try:
- os.rename(old_path, new_path)
- print(f'Името на директорията "{dirname}" е успешно променено на "{new_name_en}"')
- except OSError as e:
- print(f'Грешка при промяната на името на директорията "{dirname}": {e}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement