10 удобных методов управления именами файлов изображений с помощью регулярных выражений в вашем коде

Работа с файлами изображений часто предполагает управление их именами, чтобы обеспечить правильную организацию и эффективный поиск. Регулярные выражения (регулярные выражения) предоставляют мощный набор инструментов для манипулирования и извлечения информации из текста, включая имена файлов изображений. В этой статье блога мы рассмотрим различные методы регулярных выражений, которые помогут вам манипулировать именами файлов изображений в вашем коде. Мы рассмотрим различные сценарии, предоставим примеры кода и дадим практические советы, которые облегчат вам задачу управления файлами изображений.

Метод 1: базовое извлечение имени файла
Шаблон регулярного выражения: ([\w-]+\.(?:jpg|png|gif))
Пример кода:

import re
filename = "image1.jpg"
match = re.search(r"([\w-]+\.(?:jpg|png|gif))", filename)
if match:
    extracted_name = match.group(1)
    print(extracted_name)  # Output: image1.jpg

Объяснение: этот шаблон регулярного выражения фиксирует имя файла изображения (включая расширение) из заданной строки.

Метод 2: извлечение расширения файла
Шаблон регулярного выражения: \.(\w+)$
Пример кода:

import re
filename = "image2.png"
match = re.search(r"\.(\w+)$", filename)
if match:
    extension = match.group(1)
    print(extension)  # Output: png

Объяснение: этот шаблон регулярного выражения фиксирует расширение файла изображения с заданным именем.

Метод 3: замена расширения файла
Шаблон регулярного выражения: (\.\w+)$
Пример кода:

import re
filename = "image3.jpg"
new_extension = ".png"
new_filename = re.sub(r"(\.\w+)$", new_extension, filename)
print(new_filename)  # Output: image3.png

Объяснение: этот шаблон регулярного выражения заменяет расширение имени файла изображения новым расширением.

Метод 4: добавление префикса к имени файла
Шаблон регулярного выражения: ^([\w-]+\.(?:jpg|png|gif))
Пример кода:

import re
filename = "image4.png"
prefix = "new_"
new_filename = re.sub(r"^([\w-]+\.(?:jpg|png|gif))", prefix + r"\1", filename)
print(new_filename)  # Output: new_image4.png

Объяснение: Этот шаблон регулярного выражения добавляет префикс к имени файла изображения.

Метод 5: добавление суффикса к имени файла
Шаблон регулярного выражения: ([\w-]+\.(?:jpg|png|gif))$
Пример кода:

import re
filename = "image5.jpg"
suffix = "_new"
new_filename = re.sub(r"([\w-]+\.(?:jpg|png|gif))$", r"\1" + suffix, filename)
print(new_filename)  # Output: image5_new.jpg

Объяснение: Этот шаблон регулярного выражения добавляет суффикс к имени файла изображения.

Метод 6: удаление префикса из имени файла
Шаблон регулярного выражения: ^([\w-]+_)([\w-]+\.(?:jpg|png|gif))
Пример кода:

import re
filename = "new_image6.jpg"
new_filename = re.sub(r"^([\w-]+_)([\w-]+\.(?:jpg|png|gif))", r"\2", filename)
print(new_filename)  # Output: image6.jpg

Объяснение: этот шаблон регулярного выражения удаляет префикс из имени файла изображения.

Метод 7: удаление суффикса из имени файла
Шаблон регулярного выражения: ([\w-]+\.(?:jpg|png|gif))(_\w+)$
Пример кода:

import re
filename = "image7_new.jpg"
new_filename = re.sub(r"([\w-]+\.(?:jpg|png|gif))(_\w+)$", r"\1", filename)
print(new_filename)  # Output: image7.jpg

Объяснение: этот шаблон регулярного выражения удаляет суффикс из имени файла изображения.

Метод 8: переименование файлов в каталоге
Пример кода:

import os
import re
directory = "/path/to/images"
prefix = "new_"
for filename in os.listdir(directory):
    if re.search(r"([\w-]+\.(?:jpg|png|gif))$", filename):
        new_filename = re.sub(r"^([\w-]+\.(?:jpg|png|gif))$", prefix + r"\1", filename)
        os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))

Объяснение: Этот фрагмент кода переименовывает все файлы изображений в заданном каталоге, добавляя к их именам префикс.

Метод 9: проверка имен файлов изображений
Шаблон регулярного выражения: ^[\w-]+\.(?:jpg|png|gif)$
Пример кода:

import re
filename = "image9.jpg"
valid = re.match(r"^[\w-]+\.(?:jpg|png|gif)$", filename)
if valid:
    print("Valid file name")
else:
    print("Invalid file name")

Объяснение: Этот шаблон регулярного выражения проверяет, является ли данная строка допустимым именем файла изображения на основе указанных расширений файла.

Метод 10: извлечение размеров изображения из имени файла
Шаблон регулярного выражения: (\d+)x(\d+)
Пример кода:

import re
filename = "image_800x600.jpg"
match = re.search(r"(\d+)x(\d+)", filename)
if match:
    width = match.group(1)
    height = match.group(2)
    print(f"Width: {width}, Height: {height}")  # Output: Width: 800, Height: 600

Объяснение: этот шаблон регулярного выражения извлекает размеры изображения (ширину и высоту) из имени файла.

Regex — это универсальный инструмент для управления именами файлов изображений в коде. С помощью методов, описанных в этой статье, вы можете извлекать имена файлов, расширения, добавлять префиксы или суффиксы, переименовывать файлы в каталоге, проверять имена файлов и извлекать размеры изображений с помощью регулярных выражений. Включение этих методов в рабочие процессы управления файлами изображений повысит вашу производительность и упростит код. Поэкспериментируйте с этими примерами кода, чтобы адаптировать их к вашим конкретным потребностям и повысить эффективность задач по манипулированию файлами изображений.