Программа Python для последовательного переименования файлов в папке

Вот программа на Python, которая последовательно переименовывает файлы в папке с именами в формате «file_1.py», «file_2.py» и т. д.:

import os
folder_path = '/path/to/folder'  # Replace with the path to your folder
prefix = 'file_'  # Prefix for the new file names
extension = '.py'  # Extension for the new file names
counter = 1  # Starting counter
for filename in os.listdir(folder_path):
    if filename.endswith(extension):
        new_name = prefix + str(counter) + extension
        old_path = os.path.join(folder_path, filename)
        new_path = os.path.join(folder_path, new_name)
        os.rename(old_path, new_path)
        counter += 1

Эта программа перебирает все файлы в указанной папке и последовательно переименовывает файлы с расширением «.py», начиная с «file_1.py» и увеличивая счетчик для каждого файла.

Вот несколько альтернативных методов достижения того же результата:

Метод 1: использование функции enumerate()

import os
folder_path = '/path/to/folder'
extension = '.py'
for index, filename in enumerate(os.listdir(folder_path)):
    if filename.endswith(extension):
        new_name = f'file_{index+1}{extension}'
        old_path = os.path.join(folder_path, filename)
        new_path = os.path.join(folder_path, new_name)
        os.rename(old_path, new_path)

Метод 2. Использование цикла while

import os
folder_path = '/path/to/folder'
extension = '.py'
counter = 1
filename = os.listdir(folder_path)
while filename:
    if filename[0].endswith(extension):
        new_name = f'file_{counter}{extension}'
        old_path = os.path.join(folder_path, filename[0])
        new_path = os.path.join(folder_path, new_name)
        os.rename(old_path, new_path)
        counter += 1
    filename = os.listdir(folder_path)

Метод 3: использование модуля glob

import os
import glob
folder_path = '/path/to/folder'
extension = '.py'
file_list = glob.glob(os.path.join(folder_path, '*' + extension))
for index, file_path in enumerate(file_list):
    new_name = f'file_{index+1}{extension}'
    new_path = os.path.join(folder_path, new_name)
    os.rename(file_path, new_path)