Ce face Path.rename(), replace(), move() și copy()
rename(tinta) redenumește sau mută fișierul și returnează noua cale. Pe Windows dă eroare dacă ținta există; replace(tinta) suprascrie ținta pe orice sistem.
Python 3.14 a adăugat copy(tinta) și copy_into(director), care copiază fișiere sau directoare întregi (recursiv), precum și move(tinta) și move_into(director), care mută și între discuri diferite. Pe versiuni mai vechi folosește shutil.copy2, shutil.copytree și shutil.move.
Parametri
| Parametru | Descriere |
|---|---|
tinta |
Calea nouă. |
director |
Pentru variantele _into: directorul în care ajunge elementul, cu același nume. |
Ce returnează
Calea nouă (Path).
Exemple
Exemplul 1: Redenumire și înlocuire
from pathlib import Path
Path("ciorna.txt").write_text("v1")
nou = Path("ciorna.txt").rename("final.txt")
print(nou, nou.exists(), Path("ciorna.txt").exists())
Path("final_nou.txt").write_text("v2")
Path("final_nou.txt").replace("final.txt")
print(Path("final.txt").read_text())
Rezultat
final.txt True False
v2
Exemplul 2: copy() și move() din Python 3.14
from pathlib import Path
Path("proiect/src").mkdir(parents=True)
Path("proiect/src/main.py").write_text("print('salut')")
Path("backup").mkdir()
copie = Path("proiect").copy("proiect_copie")
print(sorted(str(p) for p in copie.rglob("*")))
print(Path("proiect/src/main.py").copy_into("backup"))
mutat = Path("proiect_copie").move_into("backup")
print(mutat, Path("proiect_copie").exists())
print(Path("backup/main.py").move("main_vechi.py"))
Rezultat
['proiect_copie/src', 'proiect_copie/src/main.py']
backup/main.py
backup/proiect_copie False
main_vechi.py
Greșeli frecvente
- Folosești
renameși programul merge pe Linux, dar dăFileExistsErrorpe Windows când ținta există. Foloseștereplacedacă vrei suprascriere.
Comenzi înrudite
shutil.move(): Mută un fișier sau un director, inclusiv pe alt disc.shutil.copy(), copy2(), copyfile() și rudele lor: Copiază fișiere: doar conținutul, conținutul cu permisiunile, sau și datele de modificare.os.rename(), os.replace() și os.renames(): Redenumește sau mută fișiere și directoare.