Как переименовать файлы в Python

Обновлено: 2024-03-12
1 мин
[Python]

Содержание

os.rename

Если имеется весь путь до пути файла:

old_source = '/Users/r/Desktop/old_source.txt'
new_source = '/Users/r/Desktop/new_source.txt'
os.rename("old_source", "new_source")

Если имеется только имя файла, воспользуемся os.path.splitext(), который возвращает кортеж из имени файла и расширения:

import os
for file in os.listdir():
    name, ext = os.path.splitext(file) # return ('путь до файла без расщирения', '.txt')
    new_name = f"{name}_new{ext}"
    os.rename(file, new_name)

pathlib

С помощью встроенного модуля pathlib

Path.rename(new_name)
from pathlib import Path
for file in os.listdir():
    f = Path(file)
    new_name = f"{f.stem}_new{f.suffix}"
    f.rename(new_name)

shutil.move

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

import shutil

old_source = '/Users/r/Desktop/old_source.txt'
new_source = '/Users/r/Desktop/new_source.txt'

newFileName = shutil.move(old_source, new_source)

print("Новый файл:", newFileName)
# Новый файл: /Users/r/Desktop/new_source.txt