Python Zmień nazwę pliku i katalogu za pomocą os.rename()

⚡ Inteligentne podsumowanie

Python Zmienia nazwy plików i katalogów za pomocą os.rename(). Tutaj nauczysz się os.rename(), os.renames(), shutil.move() i pathlib Path.rename(), a także jak zmienić nazwę katalogu i zbiorczo zmienić nazwy wielu plików, wraz z przejrzystymi przykładami.

  • ✏️ os.rename(): os.rename(src, dst) zmienia nazwę pliku lub katalogu; źródło musi istnieć.
  • 🗂️. os.renames(): os.renames() automatycznie tworzy również brakujące foldery docelowe.
  • 🚚 shutil.move(): shutil.move() zmienia nazwy plików i umożliwia ich przenoszenie pomiędzy systemami plików.
  • 🐍 biblioteka ścieżek: Path.rename() zmienia nazwy plików w sposób obiektowy (Python 3.4+).
  • 🤖 Pomoc AI: Narzędzia AI, takie jak Copilot, natychmiast generują kod zmiany nazw i zbiorczej zmiany nazw.

Python Zmień nazwę pliku os.rename()

Python Zmień nazwę pliku

Python zmień nazwę() pliku to metoda używana do zmiany nazwy pliku lub katalogu Python programowanie. The Python rename() można zadeklarować, przekazując dwa argumenty o nazwach src (źródło) i dst (miejsce docelowe).

Składnia

To jest składnia metody os.rename().

os.rename(src, dst)

Parametry

źródło: Źródło to nazwa pliku lub katalogu. Powinno już istnieć.

czas letni: Miejsce docelowe to nowa nazwa pliku lub katalogu, który chcesz zmienić.

Przykład:

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

Przyjrzyjmy się szczegółowo przykładowi

Możesz zmienić nazwę oryginalnego pliku, zmieniliśmy nazwę pliku z „Guru99.txt” na „Career.guru99.txt”.

Python Zmień nazwę pliku

  • Aby zmienić nazwę pliku „guru99.txt”, użyjemy „funkcji zmiany nazwy” w module OS
  • Zatem po wykonaniu kodu można zauważyć, że po prawej stronie panelu tworzony jest nowy plik „career.guru99.txt”, którego nazwę zmieniliśmy na naszą oryginalną.

Oto pełny 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()

Jak zmienić nazwę katalogu w Python

Metoda os.rename() zmienia również nazwy katalogów, nie tylko plików. Podaj bieżącą nazwę folderu jako źródłową i nową nazwę jako docelową.

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

Jeżeli katalog źródłowy nie istnieje, Python podnosi wyjątek FileNotFoundError, dlatego dobrą praktyką jest sprawdzenie ścieżki w pierwszej kolejności.

Zmiana nazwy pliku za pomocą os.renames()

Metoda os.renames() zmienia nazwę pliku i automatycznie tworzy brakujące katalogi pośrednie w ścieżce docelowej. Usuwa również puste katalogi pozostawione w ścieżce źródłowej.

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

W tym przypadku foldery „archiwum” i „2024” są tworzone automatycznie, jeśli jeszcze nie istnieją.

Zmiana nazwy pliku za pomocą shutil.move()

Funkcja shutil.move() przenosi plik do nowej lokalizacji, co w praktyce powoduje zmianę jego nazwy, gdy miejscem docelowym jest ten sam katalog.

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

W przeciwieństwie do os.rename(), shutil.move() może również przenosić pliki pomiędzy różnymi systemami plików lub dyskami.

Zmiana nazwy pliku za pomocą modułu pathlib

In Python Od wersji 3.4 moduł pathlib oferuje obiektowo zorientowaną metodę Path.rename() służącą do zmiany nazw plików.

from pathlib import Path

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

Metoda rename() zwraca nowy obiekt Path wskazujący na plik o zmienionej nazwie.

Jak zmienić nazwy wielu plików w Python

Aby zmienić nazwy wielu plików jednocześnie, przejrzyj pliki w katalogu za pomocą os.listdir() i wywołaj os.rename() dla każdego z nich. Poniższy przykład dodaje prefiks z numerem do każdego pliku.

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

Użycie os.path.join() sprawia, że ​​kod działa poprawnie w każdym systemie operacyjnym.

FAQ

Zaimportuj os i wywołaj os.rename(src, dst), przekazując bieżącą nazwę pliku i nową nazwę. Plik źródłowy musi już istnieć lub Python podnosi wyjątek FileNotFoundError.

os.rename() zmienia nazwę pojedynczego pliku lub katalogu, podczas gdy os.renames() tworzy również wszelkie brakujące katalogi pośrednie i usuwa puste foldery źródłowe po przeniesieniu.

Tak. shutil.move(src, dst) zmienia nazwę pliku, gdy miejscem docelowym jest ten sam folder, a także umożliwia przenoszenie plików pomiędzy różnymi systemami plików, w przeciwieństwie do os.rename().

Użyj os.rename('old_dir', 'new_dir'). Ta sama funkcja os.rename() działa zarówno dla plików, jak i katalogów, o ile katalog źródłowy istnieje.

Przejrzyj pętlę os.listdir(folder) i wywołaj os.rename() dla każdego pliku. Użyj os.path.join(), aby zbudować pełne ścieżki, dzięki czemu kod będzie działał w każdym systemie operacyjnym.

Asystenci AI, tacy jak GitHub Copilot, automatycznie uzupełniają wywołania os.rename() i pathlib oraz generują pętle wsadowej zmiany nazw na podstawie komentarza opisującego żądany wzorzec nazewnictwa.

Tak. Narzędzia oparte na sztucznej inteligencji mogą automatyzować pisanie skryptów do zbiorczej zmiany nazw, stosować wzorce, takie jak numeracja czy prefiksy dat, a także dodawać obsługę błędów w przypadku brakujących lub zduplikowanych nazw.

On Windows, os.rename() zgłasza wyjątek FileExistsError, jeśli miejsce docelowe istnieje. W systemie Unix funkcja ta nadpisuje dane po cichu. Aby uniknąć utraty danych, należy najpierw sprawdzić funkcję os.path.exists().

Podsumuj ten post następująco: