Advertisement
Nenogzar

Untitled

Nov 14th, 2023
703
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.22 KB | None | 0 0
  1. from googletrans import Translator
  2. import os
  3. import re
  4.  
  5. # Функция за превод на име от български на английски и форматиране
  6. def translate_and_format_name(bulgarian_name):
  7.     translator = Translator()
  8.     translated = translator.translate(bulgarian_name, src='en', dest='bg')
  9.     translated_text = translated.text.lower().replace(" ", "_")
  10.     translated_text = re.sub(r'[-\s]+', '_', translated_text)
  11.     translated_text = re.sub(r'_+', '_', translated_text)  # Замяна на всички последователни подчертаващи знаци с единичен
  12.     return translated_textD:\1 A
  13.  
  14. # Път до главната папка, в която ще променяте имената на директориите
  15. main_directory = input('Въведете пътя до главната папка: ')
  16.  
  17. # Обхождане на всички директории в главната папка
  18. for dirpath, dirnames, filenames in os.walk(main_directory):
  19.     for dirname in dirnames:
  20.         old_path = os.path.join(dirpath, dirname)
  21.  
  22.         # Проверка дали името на директорията е на български
  23.         if any(c.isalpha() for c in dirname) and not any(c.isalpha() for c in dirname):
  24.             print(f'Прескачане на директорията "{dirname}", тъй като е на английски.')
  25.             continue
  26.  
  27.         new_name_en = translate_and_format_name(dirname)
  28.         new_path = os.path.join(dirpath, new_name_en)
  29.  
  30.         # Проверка дали името вече е преведено и форматирано
  31.         if new_name_en == dirname:
  32.             print(f'Прескачане на директорията "{dirname}", тъй като е вече преведено и форматирано.')
  33.             continue
  34.  
  35.         try:
  36.             os.rename(old_path, new_path)
  37.             print(f'Името на директорията "{dirname}" е успешно променено на "{new_name_en}"')
  38.         except OSError as e:
  39.             print(f'Грешка при промяната на името на директорията "{dirname}": {e}')
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement