Overskriv en fil i Python

Overskriv en fil i Python

Det er visse tilfeller når programmereren ikke vil legge til data til en allerede eksisterende fil eller til og med lage flere duplikater av samme fil. I slike scenarier er den beste tilnærmingen å overskrive den eksisterende filen med nytt innhold. Overskriving er ganske enkelt prosessen med å slette den forrige filen \ innhold, og ha en ny fil \ innhold plassert på det stedet.

Denne guiden vil forklare metoden for å overskrive en fil ved hjelp av Python.

Overskriver en fil med åpen () -metode og “W” -modus

Open () -metoden brukes til å åpne en fil i Python -programmeringsspråket ved å ta banen til filen og åpningsmodus, og hvis åpningsmodus er satt til “w”Da ville den opprette en ny fil. Dette betyr at hver gang koden utføres, skal programmet opprette en ny fil med samme navn som til slutt vil føre til at operativsystemet erstatter/overskriver filen.

Eksempel:

For å demonstrere arbeidet med overskriving med Open () -metoden, er følgende fil til stede i katalogen til Python -programmet:

I Python -programmet åpner du filen med Open () -metoden og definer modus for å være "w”:

fil = åpen ("Demo.txt "," w ")

Etter det, definer det nye innholdet i filen i en strengvariabel:

newContent = "Dette er nytt innhold!""

Skrive den "NewContent”Til filen ved å bruke Writ () -metoden:

fil.Skriv (NewContent)

Det komplette kodebiten er:

fil = åpen ("Demo.txt "," w ")
newContent = "Dette er nytt innhold!""
fil.Skriv (NewContent)

Etter å ha utført denne koden, blir innholdet i filen:

Utgangen bekrefter at dataene til filen er overskrevet.

Sideanmerkning: Å skrive data til filen er ikke obligatorisk, når filen åpnes med Open () -metoden og "W" -flagget, blir filen overskrevet umiddelbart.

Overskriver en fil ved hjelp av avkortet () -metoden

Innholdet i filen kan overskrives ved å bruke avkortet () -metoden så vel som den åpne () metoden i "r+”Eller lesning+ modus. Denne metoden oppretter ikke en ny fil hver gang programmet utføres, men teller heller det forrige innholdet.

Måten avkortet () -metoden fungerer på er at når den kalles, fjerner den innholdet i filen fra den nåværende plasseringen av pekeren helt til slutten av filen. For å demonstrere dette har vi følgende innhold i "Demo" TXT -filen:

I Python -koden, start med å åpne filen i “R+” eller Reading+ -modus:

fil = åpen ("Demo.txt "," R+")

Sett pekerens plassering etter det begynnelsen av filen:

fil.Søk (0)

Lag det nye innholdet som skal legges til og skriv det til filen:

newContent = "avkortet () metode"
fil.Skriv (NewContent)

Hvis programmet blir utført på dette tidspunktet, vil resultatet være som:

Det nye innholdet har funnet sted ved starten av filen, men for å fjerne alt det gjenværende innholdet i filen, ring avkortet () metoden på filen. Den komplette koden er:

fil = åpen ("Demo.txt "," R+")
fil.Søk (0)
newContent = "avkortet () metode"
fil.Skriv (NewContent)
fil.avkortet ()

Når denne koden blir utført, vil følgende være innholdet i filen:

Fra utgangen er det klart at innholdet i det har vært overskrevet.

Overskriv spesifikt innhold ved bruk av RE.Sub () Metode

Hvis brukeren ikke vil overskrive alt innholdet i filen, erstatter bare noe av innholdet, så kan det gjøres av "under()”Metode fra“re”Pakke. For å demonstrere dette, er følgende innholdet i "demo”Tekstfil:

I Python -koden, bruk følgende linjer for å importere de nødvendige pakkene:

Import re
Fra pathlib importsti

Etter det, bruk Path () -metoden for å definere plasseringen av filen:

file_location = sti ("Demo.tekst")

Les innholdet i filen og plasser dem i en ny variabel:

file_content = file_location.read_text ()

Bruk deretter følgende linje:

file_location.skriv_text (re.Sub ("Coders", "World", File_Content))

For å forklare denne linjen:

  • RSUB () -metoden leter etter ordet "kodere" og erstatter det med "verden" innenfor variabelen "file_content"
  • Etter det, ved å bruke metoden Writ_Text () for å skrive det nye innholdet på filstedet

Komplett kodebit:

Import re
Fra pathlib importsti
file_location = sti ("Demo.tekst")
file_content = file_location.read_text ()
file_location.skriv_text (re.Sub ("Coders", "World", File_Content))

Å kjøre denne koden vil lagre følgende resultat i "Demo" -tekstfilen:

Denne utgangen bekrefter at "koderne" er overskrevet med ordet "verden" i filen.

Konklusjon

Den innebygde Open () -metoden med "W" -modus kan brukes til å lage en ny fil hver gang programmet utføres, og dermed får programmet til å "overskrive" filen. Annet enn den åpne () -metoden, kan brukeren bruke avkortet () -metoden for å erstatte innholdet i filen. Imidlertid krever avkortet () -metoden at brukeren åpner filen med Open () -metoden først. Hvis målet er å erstatte bestemt innhold for filen, kan du bruke sub () -metoden fra "RE" -pakken.