Python Preimenujte datoteku i direktorij koristeći os.rename()

⚡ Pametni sažetak

Python preimenuje datoteke i direktorije pomoću os.rename(). Ovdje ćete naučiti os.rename(), os.renames(), shutil.move() i pathlib Path.rename(), te kako preimenovati direktorij i skupno preimenovati više datoteka s jasnim primjerima.

  • ✏️ os.rename(): os.rename(src, dst) preimenuje datoteku ili direktorij; izvor mora postojati.
  • 🗂️ os.renames(): os.renames() također automatski stvara nedostajuće odredišne ​​mape.
  • 🚚 shutil.premesti(): shutil.move() preimenuje i može premještati datoteke između datotečnih sustava.
  • 🐍 knjižnica puteva: Path.rename() preimenuje datoteke na objektno orijentirani način (Python 3.4+).
  • 🤖 Pomoć umjetne inteligencije: Alati umjetne inteligencije poput Copilota trenutno generiraju kod za preimenovanje i grupno preimenovanje.

Python Preimenuj datoteku os.rename()

Python Preimenuj datoteku

Python preimenuj() datoteku je metoda koja se koristi za preimenovanje datoteke ili direktorija u Python programiranje. The Python metoda datoteke rename() može se deklarirati prosljeđivanjem dvaju argumenata pod nazivom src (izvor) i dst (odredište).

Sintaksa

Ovo je sintaksa za metodu os.rename().

os.rename(src, dst)

Parametri

src: Izvor je naziv datoteke ili direktorija. Trebao bi već postojati.

dst: Odredište je novi naziv datoteke ili direktorija koji želite promijeniti.

Primjer:

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

Pogledajmo primjer u detalje

Možete preimenovati izvornu datoteku, promijenili smo naziv datoteke iz "Guru99.txt” u “Career.guru99.txt”.

Python Preimenuj datoteku

  • Za preimenovanje datoteke "guru99.txt", koristit ćemo "funkciju preimenovanja" u OS modulu
  • Dakle, kada se kôd izvrši, možete primijetiti da je nova datoteka "career.guru99.txt" stvorena na desnoj strani ploče, koju smo preimenovali u našu izvornu datoteku.

Ovdje je kompletan kod

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()

Kako preimenovati direktorij u Python

Metoda os.rename() također preimenuje direktorije, ne samo datoteke. Kao izvor proslijedite trenutni naziv mape, a novi naziv kao odredište.

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

Ako izvorni direktorij ne postoji, Python izaziva FileNotFoundError, pa je dobra praksa prvo provjeriti putanju.

Preimenovanje datoteke pomoću os.renames()

Metoda os.renames() preimenuje datoteku i automatski stvara sve nedostajuće međudirektorije u odredišnoj putanji. Također uklanja prazne direktorije koji su ostali u izvornoj putanji.

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

Ovdje se mape archive i 2024 automatski kreiraju ako već ne postoje.

Preimenovanje datoteke pomoću shutil.move()

Funkcija shutil.move() premješta datoteku na novu lokaciju, što je učinkovito preimenuje kada je odredište isti direktorij.

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

Za razliku od os.rename(), shutil.move() također može premještati datoteku između različitih datotečnih sustava ili pogona.

Preimenovanje datoteke pomoću modula pathlib

In Python 3.4 i novijim verzijama, modul pathlib nudi objektno orijentiranu metodu Path.rename() za preimenovanje datoteka.

from pathlib import Path

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

Metoda rename() vraća novi objekt Path koji pokazuje na preimenovanu datoteku.

Kako preimenovati više datoteka u Python

Za preimenovanje više datoteka odjednom, petljom pređite preko datoteka u direktoriju pomoću os.listdir() i pozovite os.rename() za svaku od njih. Primjer u nastavku dodaje numerirani prefiks svakoj datoteci.

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))

Korištenje os.path.join() osigurava ispravan rad koda na bilo kojem operativnom sustavu.

Pitanja i odgovori

Uvezite os i pozovite os.rename(src, dst), prosljeđujući trenutni naziv datoteke i novi naziv. Izvorna datoteka već mora postojati ili Python izaziva grešku FileNotFoundError.

os.rename() preimenuje jednu datoteku ili direktorij, dok os.renames() također stvara sve nedostajuće međudirektorije i uklanja prazne izvorne mape nakon premještanja.

Da. shutil.move(src, dst) preimenuje datoteku kada je odredište ista mapa, a također može premještati datoteke između različitih datotečnih sustava, za razliku od os.rename().

Koristite os.rename('old_dir', 'new_dir'). Ista funkcija os.rename() radi i za datoteke i za direktorije, sve dok izvorni direktorij postoji.

Prođite petljom preko os.listdir(mapa) i pozovite os.rename() za svaku datoteku. Koristite os.path.join() za izgradnju punih putanja tako da kod radi na bilo kojem operativnom sustavu.

AI asistenti poput GitHub Copilota automatski dovršavaju pozive os.rename() i pathlib te generiraju petlje preimenovanja u serijama iz komentara koji opisuje željeni uzorak imenovanja.

Da. Alati pokretani umjetnom inteligencijom mogu automatizirati pisanje skripti za skupno preimenovanje, primjenjivati ​​obrasce poput numeriranja ili prefiksa datuma i dodati obradu pogrešaka za nedostajuća ili duplicirana imena.

On Windows, os.rename() podiže FileExistsError ako odredište postoji. Na Unixu, tiho prepisuje. Prvo provjerite s os.path.exists() kako biste izbjegli gubitak podataka.

Sažmite ovu objavu uz: