Python Nimeä tiedosto ja hakemisto uudelleen komennolla os.rename()

⚡ Älykäs yhteenveto

Python nimeää tiedostot ja hakemistot uudelleen os.rename()-funktiolla. Tässä osiossa opit os.rename()-, os.renames()-, shutil.move()- ja pathlib Path.rename()-funktiot sekä selkeiden esimerkkien avulla, miten hakemisto nimetään uudelleen ja kuinka useita tiedostoja nimetään uudelleen eränä.

  • ✏️ os.rename(): os.rename(src, dst) nimeää tiedoston tai hakemiston uudelleen; lähteen on oltava olemassa.
  • 🗂️ os.renames(): os.renames() luo myös puuttuvat kohdekansiot automaattisesti.
  • 🚚 shutil.move(): shutil.move() nimeää tiedostoja uudelleen ja voi siirtää tiedostojärjestelmien välillä.
  • 🐍 pathlib: Path.rename() nimeää tiedostot uudelleen oliopohjaisesti (Python 3.4+).
  • 🤖 Tekoälyn apu: Tekoälytyökalut, kuten Copilot, luovat uudelleennimeämis- ja eränimeämiskoodia välittömästi.

Python Nimeä tiedosto uudelleen os.rename()

Python Tiedosto Nimeä

Python rename()-tiedosto on menetelmä, jota käytetään nimeämään uudelleen tiedosto tai hakemisto Python ohjelmointi. The Python rename()-tiedostomenetelmä voidaan ilmoittaa antamalla kaksi argumenttia nimeltä src (lähde) ja dst (kohde).

Syntaksi

Tämä on os.rename()-menetelmän syntaksi

os.rename(src, dst)

parametrit

src: Lähde on tiedoston tai hakemiston nimi. Sen pitäisi olla jo olemassa.

dst: Kohde on muutettavan tiedoston tai hakemiston uusi nimi.

Esimerkiksi:

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

Katsotaanpa esimerkkiä yksityiskohtaisesti

Voit nimetä alkuperäisen tiedoston uudelleen. Olemme muuttaneet tiedostonimen aiemmin nimellä "Guru99.txt” tiedostoksi ”Ura.guru99.txt”.

Python Tiedosto Nimeä

  • Nimeäksemme "guru99.txt" -tiedoston uudelleen, käytämme "uudelleennimeämistoimintoa" käyttöjärjestelmämoduulissa
  • Joten kun koodi suoritetaan, voit havaita, että paneelin oikealle puolelle luodaan uusi tiedosto "career.guru99.txt", jonka nimesimme uudelleen alkuperäiseksi tiedostoksi.

Tässä on täydellinen koodi

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

Hakemiston uudelleennimeäminen Python

os.rename()-metodi nimeää uudelleen myös hakemistoja, ei vain tiedostoja. Anna nykyisen kansion nimi lähteeksi ja uuden nimen kohdekansioksi.

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

Jos lähdehakemistoa ei ole olemassa, Python aiheuttaa FileNotFoundError-virheen, joten on hyvä käytäntö tarkistaa polku ensin.

Tiedoston uudelleennimeäminen os.renames()-funktiolla

os.renames()-metodi nimeää tiedoston uudelleen ja luo automaattisesti kaikki puuttuvat välihakemistot kohdepolkuun. Se myös poistaa lähdepolusta jäljelle jääneet tyhjät hakemistot.

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

Tässä kansiot archive ja 2024 luodaan automaattisesti, jos niitä ei jo ole olemassa.

Tiedoston uudelleennimeäminen shutil.move()-funktiolla

shutil.move()-funktio siirtää tiedoston uuteen sijaintiin, mikä käytännössä nimeää sen uudelleen, kun kohdehakemisto on sama.

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

Toisin kuin os.rename(), shutil.move() voi myös siirtää tiedostoa eri tiedostojärjestelmien tai asemien välillä.

Tiedoston nimeäminen uudelleen pathlib-moduulin avulla

In Python Versiossa 3.4 ja uudemmissa pathlib-moduuli tarjoaa oliopohjaisen Path.rename()-metodin tiedostojen uudelleennimeämiseen.

from pathlib import Path

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

rename()-metodi palauttaa uuden Path-objektin, joka osoittaa uudelleennimettyyn tiedostoon.

Useiden tiedostojen uudelleennimeäminen Python

Jos haluat nimetä useita tiedostoja kerralla, käy hakemistossa olevat tiedostot läpi os.listdir()-funktiolla ja kutsu os.rename()-funktiota kunkin tiedoston kohdalla. Alla oleva esimerkki lisää numeroidun etuliitteen jokaiseen tiedostoon.

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

os.path.join()-funktion käyttö varmistaa koodin toiminnan oikein missä tahansa käyttöjärjestelmässä.

UKK

Tuo os ja kutsu os.rename(src, dst) välittäen nykyisen tiedostonimen ja uuden nimen. Lähdetiedoston on oltava jo olemassa, tai Python aiheuttaa FileNotFoundError-virheen.

os.rename() nimeää uudelleen yksittäisen tiedoston tai hakemiston, kun taas os.renames() luo myös puuttuvat välihakemistot ja poistaa tyhjät lähdekansiot siirron jälkeen.

Kyllä. shutil.move(src, dst) nimeää tiedoston uudelleen, kun kohdekansio on sama, ja voi myös siirtää tiedostoja eri tiedostojärjestelmien välillä, toisin kuin os.rename().

Käytä funktiota os.rename('old_dir', 'new_dir'). Sama os.rename()-funktio toimii sekä tiedostoille että hakemistoille, kunhan lähdehakemisto on olemassa.

Käy läpi os.listdir(folder) ja kutsu os.rename()-funktiota jokaiselle tiedostolle. Käytä os.path.join()-funktiota luodaksesi täydellisiä polkuja, jotta koodi toimii missä tahansa käyttöjärjestelmässä.

Tekoälyavustajat, kuten GitHub Copilot, täydentävät os.rename()- ja pathlib-kutsuja automaattisesti ja luovat eräajouudelleennimeämissilmukoita kommentista, joka kuvaa haluamasi nimeämismallin.

Kyllä. Tekoälyllä toimivat työkalut voivat automatisoida eräajoissa uudelleennimettävien komentosarjojen kirjoittamisen, käyttää malleja, kuten numerointia tai päivämäärän etuliitteitä, ja lisätä virheenkäsittelyn puuttuville tai kaksoiskappaleille.

On Windowsos.rename() aiheuttaa FileExistsError-virheen, jos kohde on olemassa. Unixissa se korvaa sen hiljaisesti. Tarkista ensin os.path.exists()-funktiolla välttääksesi tietojen menettämisen.

Tiivistä tämä viesti seuraavasti: