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 Преименувайте файла

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

Синтаксис

Това е синтаксисът за метода os.rename().

os.rename(src, dst)

параметри

src: Източник е името на файла или директорията. Би трябвало вече да съществува.

dst: Дестинация е новото име на файла или директорията, които искате да промените.

Пример:

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

Нека разгледаме примера в детайли

Можете да преименувате оригиналния файл, ние променихме името на файла от „Guru„99.txt“ в „Career.guru99.txt“.

Python Преименувайте файла

  • За да преименуваме файла „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() поддържа кода да работи правилно на всяка операционна система.

Въпроси и Отговори

Импортирайте 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(), за да изградите пълни пътища, така че кодът да работи на всяка операционна система.

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

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

On Windows, os.rename() повдига FileExistsError, ако дестинацията съществува. В Unix, тя тихо презаписва. Първо проверете с os.path.exists(), за да избегнете загуба на данни.

Обобщете тази публикация с: