Ce face os.rename(), os.replace() și os.renames()
rename() redenumește sau mută un fișier pe același disc. Dacă destinația există, pe Unix este înlocuită, iar pe Windows apare FileExistsError. replace() înlocuiește destinația pe orice sistem; pe același disc, operația este atomică, deci folosită pentru a salva fișiere în siguranță (scrii într-un fișier temporar, apoi îl înlocuiești pe cel vechi).
renames() creează directoarele necesare pentru destinație și șterge directoarele rămase goale în urma sursei.
Parametri
| Parametru | Descriere |
|---|---|
sursa, destinatie |
Calea veche și cea nouă. |
Ce returnează
None.
Exemple
Exemplul 1: Salvare atomică și mutare cu directoare noi
import os
with open("setari.json", "w") as f:
f.write('{"v": 1}')
with open("setari.json.tmp", "w") as f:
f.write('{"v": 2}')
os.replace("setari.json.tmp", "setari.json")
with open("setari.json") as f:
print(f.read(), os.path.exists("setari.json.tmp"))
os.rename("setari.json", "config.json")
os.makedirs("vechi/2026")
open("vechi/2026/raport.txt", "w").close()
os.renames("vechi/2026/raport.txt", "arhiva/2026/raport.txt")
print(os.path.exists("vechi"), os.path.exists("arhiva/2026/raport.txt"))
Rezultat
{"v": 2} False
False True
Greșeli frecvente
- Muți fișiere între discuri diferite cu
os.renameși primeștiOSError: Invalid cross-device link. Foloseșteshutil.move.
Comenzi înrudite
Path.rename(), replace(), move() și copy(): Redenumește, mută și copiază fișiere sau directoare.shutil.move(): Mută un fișier sau un director, inclusiv pe alt disc.os.remove(), unlink(), rmdir() și removedirs(): Șterge fișiere și directoare goale.