Python gir nytt navn til filen

Python gir nytt navn til filen
“Python er et flott verktøy for automatisering og å lage enkle verktøy som lar deg forenkle livet ditt. Det gir deg verktøy som lar deg samhandle med systemets ressurser på lavt nivå som disk, OS-kjerne, minne, nettverk, etc.

En av scenariene som du ofte vil møte som Python -utvikler er File Management. Det er derfor å ha noen få ferdigheter som gjelder filhåndtering under beltet ditt.

For denne opplæringen vil vi gi deg en av disse ferdighetene. Du lærer hvordan du gir nytt navn til enkelt- eller flere filer ved hjelp av Python.”

Med det ut av veien, la oss komme i gang.

Python gi nytt navn til fil - OS -modul

En av de mest nyttige modulene i Python -økosystemet er OS -modulen. Det gir deg mange verktøy og funksjonalitet for å samhandle med OS.

OS -modulen er veldig omfattende, og vi kan derfor ikke utforske den fra start til slutt. La oss imidlertid fokusere på den ene funksjonen som lar oss gi nytt navn til filer på systemet.

Rename () -funksjonen i Pythons OS -modul lar deg gi nytt navn til en eksisterende fil på systemet ditt.

Syntaksen er som vist nedenfor:

OS.gi nytt navn (fil, destinasjon)

Det tar banen til målfilen og banen for det nye filnavnet som parametere. Siden du gir nytt navn til en fil, bør du sørge for at både fil- og destinasjonsparametrene har forskjellige verdier.

Merk: Selv om OS -modulen er en del av Pythons standardbibliotek, må du importere den før bruk.

Følg sammen med eksemplene som er gitt nedenfor for å oppdage hvordan vi kan gi nytt navn til en fil ved å bruke nytt navn () -funksjonen.

Eksempel 1 - Gi nytt navn til en fil

Anta at vi har en fil som heter “Backup.tjære, ”og vi vil gi den nytt navn til“ Backup_raw.tjære.”For enkelhets skyld, la oss anta at filen vi ønsker å gi nytt navn, er lokalisert i samme katalog som Python -skriptet vårt.

Ved hjelp av en enkel Python -kode (kilde nedenfor) kan vi gi nytt navn til filen. Skjermbildet nedenfor viser gjeldende katalog før du gir nytt navn til filen.

Vi kan deretter kjøre koden vist nedenfor:

Fra OS Import gi nytt navn
src = "./sikkerhetskopi.glidelås"
dest = "./backup_raw.glidelås"
gi nytt navn (src, dest)

La oss bryte ned koden.

Vi starter med å importere nytt navnfunksjonen fra OS -modulen. Det er ikke nødvendig å importere all koden fra OS -modulen når vi ikke trenger den.

Vi lager da to variabler. En som holder veien til filen vi ønsker å gi nytt navn. Den andre holder banen til det nye filnavnet.

Til slutt kaller vi Rename () -funksjonen og passerer kilde- og destinasjonsparametrene. Kjør koden skal gi nytt navn til målfilen, som vist i det resulterende skjermbildet.

Og der har vi det, vi har gitt nytt navn til filen fra Backup.ZIP til Backup_raw.glidelås.

Eksempel 2 - Windows -filstier

La oss ta et annet eksempel der målfilen ligger i en annen katalog. Husk at banestrukturen vil endre seg avhengig av måloperativsystemet.

La oss for eksempel si at vi ønsker å gi nytt navn til filen som heter “Backups.Zip ”som ligger i" Backups "-katalogen til" UNIX "-brukeren til" Backups_raw.glidelås.”

På UNIX -systemer kan vi bruke koden nedenfor for å gi nytt navn til filen som:

Fra OS Import gi nytt navn
src = "/home/unix/backups/backups.glidelås"
dest = "/home/unix/backups/backups_raw.glidelås"
gi nytt navn (src, dest)

I dette tilfellet gir vi den absolutte veien til den gamle og omdøpte filen.

For vinduer, system kan vi endre banen for å ligne koden nedenfor:

Fra OS Import gi nytt navn
SRC = "C: \\ Brukere \\ Unix \\ Backups \\ Backups.glidelås"
dest = "c: \\ brukere \\ unix \\ backups \\ backups_raw.glidelås"
gi nytt navn (src, dest)

I eksemplet over bruker vi en dobbel tilbakeslagskarakter for å unnslippe den enkle tilbakeslagskarakteren som brukes i Windows -filstier.

Husk at Python kanskje ikke liker denne veien veldig mye. Ta en titt på Pythons Join () -funksjon fra OS -modulen for å lære hvordan du kan overvinne dette.

Eksempel 3 - Feilhåndtering

Selv om RENAME () -funksjonen lar deg gi nytt navn til en hvilken som helst fil fra et hvilket som helst sted i filsystemet ditt, kan det føre til feil hvis for eksempel:

  1. Målfilen eksisterer ikke.
  2. En fil med et lignende navn som destinasjonen allerede eksisterer.
  3. Utilstrekkelig tillatelse på målfilen og katalogen.

Det er derfor en god praksis å implementere en feilhåndteringsmekanisme. For enkelhets skyld vil vi prøve å holde oss til forsøk/unntatt blokkering.

Tenk på eksempelkoden vist nedenfor:

Fra OS Import gi nytt navn
src = "./old_file.tekst"
dest = "./new_file.tekst"
prøve:
gi nytt navn (src, dest)
unntatt filenotfoundererror som e:
trykk (e)

I koden over bruker vi en prøve/unntatt blokkering for å håndtere den filenotfundne feilen.

Et annet eksempel er hvis målfilen allerede eksisterer. Et eksempelkode er som vist:

Fra OS Import gi nytt navn
src = "./old_file.tekst"
dest = "./new_file.tekst"
prøve:
gi nytt navn (src, dest)
Bortsett fra FileExistSerror som E:
trykk (e)

Hva om vi ikke har tillatelse til å endre filen? For det kan vi takke tillatelsen. Sjekk den enkle koden vist nedenfor:

Fra OS Import gi nytt navn
src = "./old_file.tekst"
dest = "./new_file.tekst"
prøve:
gi nytt navn (src, dest)
Bortsett fra tillatelse som e:
trykk (e)

Eksempel 4 - Gi nytt navn til flere filer

I noen tilfeller kan vi ha en katalog med en liste over filer som vi ønsker å gi nytt navn til noe annet.

Hvordan ville vi gjøre det?

Det første trinnet ville være å få listen over alle filene i målkatalogen og lagre dem i en iterable.

Heldigvis lar ListDIR -funksjonen fra OS -modulen oss gjøre akkurat det.

Vi kan da iterere over hvert element i det iterable objektet ved hjelp av en for loop og tilordne det et nytt navn.

Tilsvarende vil vi prøve å holde oss til et enkelt eksempel.

I vårt eksempel har vi en mappe som heter Apache_Velocity som inneholder, du gjettet det, Apache -hastighetsmaler.

Katalogstrukturen er som vist:

ls -la apache_velocity
Totalt 24
DRWXR-XR-X@ 5 Salem Staff 160 5. juni 01:37 .
DRWX ------+ 9 Salem Staff 288 5. juni 01:41.
-RW-R-R-- 1 Salem Staff 81 5 Jun 01:39 Master.vm
-RW-R-R-- 1 Salem Staff 81 5 Jun 01:39 ROOT.vm
-RW-R-R-- 1 Salem Staff 81 5. juni 01:39 slave.vm
La oss se hvordan vi kan gi nytt navn til disse filene til noe annet.
Fra OS Import Rename, Listdir
fra OS.Path Import Join
# sett måldir
Target_Dir = "/Brukere/brukernavn/desktop/apache_velocity"
#Interer filene
for fil i listDIR (Target_Dir):
src = bli med (Target_dir, fil)
gi nytt navn til (src, f "src.bak ")
trykk ("Rekursiv nytt navn til vellykket")
print (listdir (Target_dir))

Koden over er relativt enkel og kan forbedres kraftig. Men for å unngå overkomplikasjoner, la oss holde oss til det.

Vi starter med å importere funksjonen vi trenger.

  1. gi nytt navn til (), som lar oss gi nytt navn til filer
  2. ListDir (), som lar oss liste opp filene i en gitt katalog.

Vi importerer også Join () -funksjonen fra OS.banemodul. Denne funksjonen lar oss konstruere komplette og tverrplattformede kompatible filstier.

Deretter lager vi en variabel som holder banen til målkatalogen. Jeg.e., katalogen hvis filer vi ønsker å gi nytt navn.

Deretter oppretter vi en løkke som itererer over hver fil i målkatalogen ved hjelp av listdir. Inne.

Og til slutt gir vi nytt navn til filene ved å legge til en .Bak -utvidelse til hver fil.

Hvis vi kjører koden over, bør vi se en utdata som vist

Vi kan se at filene har fått nytt navn til Old_Filename.Bak.

Konklusjon

I denne opplæringen utforsket vi hvordan vi kan gi nytt navn til filer ved hjelp av Python. Vi forsto hvordan vi skulle jobbe med Rename -funksjonen slik at vi kan gi nytt navn til en enkelt eller flere filer.

Takk for at du leser og lykkelig koding!!