Python Přejmenujte soubor a adresář pomocí os.rename()

⚡ Chytré shrnutí

Python přejmenuje soubory a adresáře pomocí os.rename(). Zde se dozvíte os.rename(), os.renames(), shutil.move() a pathlib Path.rename() a také jak přejmenovat adresář a dávkově přejmenovat více souborů s jasnými příklady.

  • ✏️ os.rename(): os.rename(src, dst) přejmenuje soubor nebo adresář; zdrojový kód musí existovat.
  • 🗂️ os.renames(): os.renames() také automaticky vytvoří chybějící cílové složky.
  • 🚚 shutil.move(): shutil.move() přejmenuje a může přesouvat soubory mezi souborovými systémy.
  • 🐍 knihovna pathlib: Funkce Path.rename() přejmenuje soubory objektově orientovaným způsobem (Python 3.4+).
  • 🤖 Pomoc s umělou inteligencí: Nástroje umělé inteligence, jako je Copilot, okamžitě generují kód pro přejmenování a dávkové přejmenování.

Python Přejmenovat soubor os.rename()

Python přejmenování souboru

Python rename() soubor je metoda používaná k přejmenování souboru nebo adresáře v Python programování. The Python Metoda souboru rename() může být deklarována předáním dvou argumentů pojmenovaných src (zdroj) a dst (cíl).

Syntax

Toto je syntaxe metody os.rename().

os.rename(src, dst)

parametry

src: Zdroj je název souboru nebo adresáře. Musí již existovat.

dst: Cíl je nový název souboru nebo adresáře, který chcete změnit.

Příklad:

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

Podívejme se na příklad podrobně

Původní soubor můžete přejmenovat, my jsme změnili název souboru z „Guru„99.txt“ na „Career.guru99.txt“.

Python přejmenování souboru

  • K přejmenování souboru „guru99.txt“ použijeme „funkci přejmenování“ v modulu OS
  • Takže když je kód spuštěn, můžete pozorovat, že se na pravé straně panelu vytvoří nový soubor „career.guru99.txt“, který jsme přejmenovali na náš původní soubor.

Zde je úplný kód

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

Jak přejmenovat adresář v Python

Metoda os.rename() přejmenuje také adresáře, nejen soubory. Jako zdroj předá aktuální název složky a jako cíl nový název.

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

Pokud zdrojový adresář neexistuje, Python vyvolává FileNotFoundError, takže je vhodné nejprve zkontrolovat cestu.

Přejmenování souboru pomocí os.renames()

Metoda os.renames() přejmenuje soubor a automaticky vytvoří všechny chybějící mezilehlé adresáře v cílové cestě. Také odstraní prázdné adresáře, které zůstanou ve zdrojové cestě.

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

Zde se složky archive a 2024 vytvoří automaticky, pokud ještě neexistují.

Přejmenování souboru pomocí shutil.move()

Funkce shutil.move() přesune soubor do nového umístění, čímž jej efektivně přejmenuje, pokud je cílem stejný adresář.

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

Na rozdíl od os.rename() může shutil.move() také přesouvat soubor mezi různými souborovými systémy nebo disky.

Přejmenování souboru pomocí modulu pathlib

In Python Verze 3.4 a novější nabízí modul pathlib objektově orientovanou metodu Path.rename() pro přejmenování souborů.

from pathlib import Path

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

Metoda rename() vrací nový objekt Path, který ukazuje na přejmenovaný soubor.

Jak přejmenovat více souborů v Python

Chcete-li přejmenovat více souborů najednou, projděte soubory v adresáři smyčkou pomocí os.listdir() a pro každý z nich zavolejte os.rename(). Následující příklad přidá ke každému souboru číslovanou předponu.

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

Použití os.path.join() zajišťuje správnou funkčnost kódu na jakémkoli operačním systému.

Nejčastější dotazy

Importujte os a zavolejte os.rename(src, dst), předejte aktuální název souboru a nový název. Zdrojový soubor již musí existovat, nebo Python vyvolává chybu FileNotFoundError.

Funkce os.rename() přejmenuje jeden soubor nebo adresář, zatímco funkce os.renames() také vytvoří všechny chybějící mezilehlé adresáře a po přesunutí odstraní prázdné zdrojové složky.

Ano. shutil.move(src, dst) přejmenuje soubor, pokud je cílem stejná složka, a na rozdíl od os.rename() může také přesouvat soubory mezi různými souborovými systémy.

Použijte os.rename('old_dir', 'new_dir'). Stejná funkce os.rename() funguje pro soubory i adresáře, pokud zdrojový adresář existuje.

Pro každý soubor projděte smyčkou os.listdir(folder) a zavolejte os.rename(). Pro vytvoření úplných cest použijte os.path.join(), aby kód fungoval na jakémkoli operačním systému.

Asistenti umělé inteligence, jako je GitHub Copilot, automaticky dokončují volání os.rename() a pathlib a generují smyčky dávkového přejmenování z komentáře popisujícího požadovaný vzor pojmenování.

Ano. Nástroje s umělou inteligencí dokáží automatizovat psaní skriptů pro dávkové přejmenování, používat vzory, jako je číslování nebo předpony data, a přidávat ošetření chyb pro chybějící nebo duplicitní názvy.

On WindowsPokud cíl existuje, funkce os.rename() vyvolá chybu FileExistsError. V systému Unix provádí tiché přepsání. Abyste předešli ztrátě dat, nejprve zkontrolujte pomocí funkce os.path.exists().

Shrňte tento příspěvek takto: