Переименование файлов в Python: руководство по различным методам

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

Метод 1: использование функции rename() модуля os
Модуль os в Python предоставляет удобный способ переименования файлов. Вот простой пример:

import os
def rename_files():
    folder_path = '/path/to/folder/'  # Replace with your actual folder path

    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):  # Rename only files with a specific extension
            new_name = filename.replace('old_text', 'new_text')  # Replace 'old_text' with 'new_text'
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_name))
rename_files()

Метод 2: использование модуля pathlib
Модуль pathlib был представлен в Python 3.4 и обеспечивает объектно-ориентированный подход к путям файловой системы. Вот пример переименования файлов с использованием pathlib:

from pathlib import Path
def rename_files():
    folder_path = Path('/path/to/folder/')  # Replace with your actual folder path

    for file_path in folder_path.iterdir():
        if file_path.suffix == '.txt':  # Rename only files with a specific extension
            new_name = file_path.stem.replace('old_text', 'new_text') + file_path.suffix
            file_path.rename(file_path.with_name(new_name))
rename_files()

Метод 3: использование функции move() модуля Shutil
Модуль Shutil в Python обеспечивает файловые операции высокого уровня. Мы можем использовать функцию move() для переименования файлов. Вот пример:

import shutil
def rename_files():
    folder_path = '/path/to/folder/'  # Replace with your actual folder path

    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):  # Rename only files with a specific extension
            new_name = filename.replace('old_text', 'new_text')  # Replace 'old_text' with 'new_text'
            shutil.move(os.path.join(folder_path, filename), os.path.join(folder_path, new_name))
rename_files()

Метод 4. Использование регулярных выражений (регулярных выражений).
Если у вас есть сложные шаблоны переименования, вы можете использовать возможности регулярных выражений. Модуль Python re может помочь в этом. Вот пример:

import re
import os
def rename_files():
    folder_path = '/path/to/folder/'  # Replace with your actual folder path

    pattern = r'(\d{4})-(\d{2})-(\d{2})'  # Regex pattern to match yyyy-mm-dd format

    for filename in os.listdir(folder_path):
        if filename.endswith('.txt'):  # Rename only files with a specific extension
            match = re.search(pattern, filename)
            if match:
                new_name = match.group(2) + '-' + match.group(3) + '-' + match.group(1) + '.txt'
                os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_name))
rename_files()

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