Python Переименуйте файл и каталог с помощью os.rename()

⚡ Умное резюме

Python Переименовывает файлы и каталоги с помощью os.rename(). Здесь вы узнаете о функциях os.rename(), os.renames(), shutil.move() и pathlib Path.rename(), а также о том, как переименовать каталог и переименовать несколько файлов одновременно, с наглядными примерами.

  • 🇧🇷 os.rename(): Функция os.rename(src, dst) переименовывает файл или каталог; исходный каталог должен существовать.
  • 🇧🇷 os.renames(): Функция os.renames() также автоматически создает отсутствующие целевые папки.
  • 🚚 shutil.move(): Метод shutil.move() переименовывает файлы и позволяет перемещать их между файловыми системами.
  • 🐍 pathlib: Метод Path.rename() переименовывает файлы объектно-ориентированным способом.Python 3.4+).
  • 🤖 Помощь ИИ: Инструменты искусственного интеллекта, такие как Copilot, мгновенно генерируют код для переименования и пакетного переименования.

Python Переименовать файл os.rename()

Python File Rename

Python переименовать() файл это метод, используемый для переименования файла или каталога в Python программирование. Python Файловый метод rename() можно объявить, передав два аргумента с именами src (источник) и dst (назначение).

Синтаксис

Это синтаксис метода os.rename().

os.rename(src, dst)

Параметры

ЦСИ: Источник — это имя файла или каталога. Он должен уже существовать.

летнее время: Назначение — это новое имя файла или каталога, который вы хотите изменить.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

import os  
os.rename('guru99.txt','career.guru99.txt')

Давайте рассмотрим пример подробно

Вы можете переименовать исходный файл, мы изменили имя файла с «Guru«99.txt» в «Career.guru99.txt».

Python File Rename

  • Чтобы переименовать файл «guru99.txt», мы собираемся использовать «функцию переименования» в модуле ОС.
  • Итак, когда код будет выполнен, вы увидите, что в правой части панели создается новый файл «career.guru99.txt», который мы переименовали в наш исходный файл.

Вот полный код

import os
import shutil
from os import path

def main():
	# make a duplicate of an existing file
    if path.exists("guru99.txt"):
	# get the path to the file in the current directory
        src = path.realpath("guru99.txt");
		
	# rename the original file
        os.rename('guru99.txt','career.guru99.txt') 
		
if __name__ == "__main__":
    main()

Как переименовать каталог в Python

Метод os.rename() переименовывает не только файлы, но и каталоги. Передайте имя текущей папки в качестве источника и новое имя в качестве назначения.

import os
os.rename("old_directory", "new_directory")

Если исходный каталог не существует, Python Это вызовет ошибку FileNotFoundError, поэтому рекомендуется сначала проверить путь.

Переименование файла с помощью os.renames()

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

import os
os.renames("guru99.txt", "archive/2024/career.txt")

Здесь папки archive и 2024 создаются автоматически, если они еще не существуют.

Переименовать файл с помощью shutil.move()

Функция shutil.move() перемещает файл в новое место, фактически переименовывая его, если целевая директория находится в том же каталоге.

import shutil
shutil.move("guru99.txt", "career.guru99.txt")

В отличие от os.rename(), shutil.move() также может перемещать файл между различными файловыми системами или дисками.

Переименование файла с помощью модуля pathlib

In Python В версиях 3.4 и более поздних модуль pathlib предлагает объектно-ориентированный метод Path.rename() для переименования файлов.

from pathlib import Path

file = Path("guru99.txt")
file.rename("career.guru99.txt")

Метод rename() возвращает новый объект Path, указывающий на переименованный файл.

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

Чтобы переименовать сразу много файлов, пройдите циклом по файлам в каталоге с помощью os.listdir() и вызовите os.rename() для каждого из них. В приведенном ниже примере каждому файлу добавляется номерной префикс.

import os

folder = "myfiles"
for count, filename in enumerate(os.listdir(folder)):
    new_name = f"file_{count}.txt"
    os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

Использование os.path.join() обеспечивает корректную работу кода в любой операционной системе.

Часто задаваемые вопросы (FAQ)

Импортируйте os и вызовите os.rename(src, dst), передав текущее имя файла и новое имя. Исходный файл должен уже существовать, или Python вызывает ошибку FileNotFoundError.

Функция os.rename() переименовывает отдельный файл или каталог, а функция os.renames() также создает все отсутствующие промежуточные каталоги и удаляет пустые исходные папки после перемещения.

Да. Функция shutil.move(src, dst) переименовывает файл, если в качестве места назначения используется та же папка, и, в отличие от os.rename(), может перемещать файлы между различными файловыми системами.

Используйте os.rename('old_dir', 'new_dir'). Одна и та же функция os.rename() работает как для файлов, так и для каталогов, при условии, что исходный каталог существует.

Пройдите циклом по os.listdir(folder) и вызовите os.rename() для каждого файла. Используйте os.path.join() для построения полных путей, чтобы код работал в любой операционной системе.

Искусственный интеллект, используемый такими помощниками, как GitHub Copilot, автоматически дополняет вызовы os.rename() и pathlib, а также генерирует циклы пакетного переименования на основе комментария, описывающего желаемый шаблон именования.

Да. Инструменты на основе искусственного интеллекта могут автоматизировать написание скриптов для пакетного переименования, применять шаблоны, такие как нумерация или префиксы дат, а также добавлять обработку ошибок для отсутствующих или повторяющихся имен.

On WindowsМетод os.rename() вызывает ошибку FileExistsError, если целевой файл существует. В Unix он автоматически перезаписывает данные. Чтобы избежать потери данных, сначала проверьте наличие файла с помощью os.path.exists().

Подведем итог этой публикации следующим образом: