Работа с файлами изображений часто предполагает управление их именами, чтобы обеспечить правильную организацию и эффективный поиск. Регулярные выражения (регулярные выражения) предоставляют мощный набор инструментов для манипулирования и извлечения информации из текста, включая имена файлов изображений. В этой статье блога мы рассмотрим различные методы регулярных выражений, которые помогут вам манипулировать именами файлов изображений в вашем коде. Мы рассмотрим различные сценарии, предоставим примеры кода и дадим практические советы, которые облегчат вам задачу управления файлами изображений.
Метод 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 — это универсальный инструмент для управления именами файлов изображений в коде. С помощью методов, описанных в этой статье, вы можете извлекать имена файлов, расширения, добавлять префиксы или суффиксы, переименовывать файлы в каталоге, проверять имена файлов и извлекать размеры изображений с помощью регулярных выражений. Включение этих методов в рабочие процессы управления файлами изображений повысит вашу производительность и упростит код. Поэкспериментируйте с этими примерами кода, чтобы адаптировать их к вашим конкретным потребностям и повысить эффективность задач по манипулированию файлами изображений.