Найти в Дзене
ФЭД

Меняем кириллицу на латиницу в названии файлов (фотографии) с помощью Python

Если у вас есть интерпретатор языка Python, то можно без труда заменить название в группе файлов сразу. Для чего это нужно? Если обрабатывать файлы, например, фото, то названия на кириллице нужно будет менять на латиницу для дальнейшей работы, а переименовывать каждый файл вручную - дело хлопотное. Сразу прилагаю код на Гитхабе для удобного копирования, а ниже будут объяснения. <https://gist.github.com/ElenaInDespair/34be8ac2b642f2059aa4c9e51db32d43> Итак, содержание (строки здесь не отформатированы для копирования, нет отступов, здесь так сделать невозможно, кое-что пропущено для краткости, поэтому надо сразу открыть код): import os - Импортируем модуль os, который предоставляет функции для взаимодействия с операционной системой, такие как перечисление файлов в каталоге и переименование файлов folder_path = 'path/to/your/photo/folder' - вставляем путь к папке cyrillic_to_latin = { 'А': 'A', 'а': 'a', 'Б': 'B', 'б': 'b', ...} - создаем словарь: он сопоставляет каждый кириллический си

Если у вас есть интерпретатор языка Python, то можно без труда заменить название в группе файлов сразу. Для чего это нужно? Если обрабатывать файлы, например, фото, то названия на кириллице нужно будет менять на латиницу для дальнейшей работы, а переименовывать каждый файл вручную - дело хлопотное. Сразу прилагаю код на Гитхабе для удобного копирования, а ниже будут объяснения.

<https://gist.github.com/ElenaInDespair/34be8ac2b642f2059aa4c9e51db32d43>

Итак, содержание (строки здесь не отформатированы для копирования, нет отступов, здесь так сделать невозможно, кое-что пропущено для краткости, поэтому надо сразу открыть код):

import os

- Импортируем модуль os, который предоставляет функции для взаимодействия с операционной системой, такие как перечисление файлов в каталоге и переименование файлов

folder_path = 'path/to/your/photo/folder'

- вставляем путь к папке

cyrillic_to_latin = {

'А': 'A', 'а': 'a',

'Б': 'B', 'б': 'b', ...}

- создаем словарь: он сопоставляет каждый кириллический символ с его эквивалентным латинским обозначением. Например, "B" соответствует "B", а "b" соответствует "b". Символы типа "мягкий знак" преобразуются в пустую строку, что означает, что они удаляются при транслитерации.

def transliterate(text):

result = ''

for char in text:

result += cyrillic_to_latin.get(char, char)

return result

- Определение функции транслитерации. функция принимает текстовую строку (например, имя файла). Она инициализирует результат в виде пустой строки, затем перебирает каждый символ char в тексте с помощью цикла for. Для каждого символа ищется соответствие в словаре cyrillic_to_latin и при нахождении к результату добавляется латинский эквивалент (если не найдено (то есть это не кириллица), то символ добавляется как есть, например, цифра. Возвращается транслитерированная строка.

Функция get() в Python возвращает значение по указанному ключу. Название ключа всегда должно быть уникальным. В случае обращения по несуществующему ключу, Python вернёт значение None.

def rename_photos_in_folder(folder):

for filename in os.listdir(folder):

# Only process image files (extensions)

if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff')):

...

print(f"Renamed: {filename} -> {new_name}")

- Переименование файлов в папке (создаем функцию). Функция принимает в качестве входных данных папку. Она использует os.listdir(папку) для получения имен всех файлов в этой папке, затем фильтрует файлы, чтобы обрабатывать только изображения на основе их расширения.

Действия функции для каждого изображения:

-- Она создает новое имя файла, транслитерируя исходное имя файла.

-- Она создает полные пути для старого и нового имен файлов.

Проверяется, нет ли конфликтов имен:

Если файл с новым именем уже существует, добавляется_1, _2 и т.д., чтобы создать уникальное имя файла. Затем функция переименовывает файл с помощью os.rename и выводит сообщение об изменении.

if __name__ == "__main__":

rename_photos_in_folder(folder_path)

- Указывается, что скрипт будет выполняться только при непосредственном запуске. Вызывается функция с указанным вами путем к папке.

FOTO 02 - Файл был переименован в латиницу, цифры и пробелы остались на месте, при дальнейшей автоматической обработке проблем не возникает
FOTO 02 - Файл был переименован в латиницу, цифры и пробелы остались на месте, при дальнейшей автоматической обработке проблем не возникает

Надеюсь, вам было это полезно))) всем добра!!!

Если у вас есть сканы фотографий с большими белыми полями, которые вы хотите автоматически убрать , попробуйте код из моей статьи: