Hvordan lese og skrive tekstfiler i Python

Hvordan lese og skrive tekstfiler i Python
Denne artikkelen vil dekke en guide som forklarer ekstern filhåndtering i Python. Hovedfokuset vil være på åpning og lukking av tekst og andre ikke-binære datafiler som er lagret på et lagringsmedium, slik at du kan kjøre forskjellige operasjoner på innholdet i de åpne filene.

Åpning og lukking av en fil

Å lese data fra en tekstfil som heter “Data.txt ”, du må bruke den" åpne "metoden som følger med offisielle Python -bygninger. Sjekk prøvekoden nedenfor:

F = Åpne ('Data.txt ',' r ')
f.Lukk()

Den første uttalelsen åpner “Dataene.txt ”-fil i“ R ”(skrivebeskyttet) modus. Den "åpne" metoden godtar et filnavn og modus for håndtering av filen som argumenter. Foruten “R” -modus, er det også andre moduser som vil bli forklart senere. Kodebiten over kjører ingen operasjoner på den åpne filen. "Lukk" -metoden brukes til å lukke den åpne filen rent slik at minnet kan frigjøres og for å unngå datakorrupsjon i den åpne filen som kan skje noen ganger hvis filen ikke er stengt riktig.

I stedet for å bruke den "åpne" metoden for å håndtere åpning og lukking av filer, kan du kombinere den med "med" nøkkelord og bruke "med åpen" uttalelse.

med åpne ('data.txt ',' r ') som f:
sende

Den største fordelen med å bruke en "med åpen" uttalelse er at tolken automatisk lukker den åpne filen trygt når "med åpen" kodeblokk blir analysert fullstendig. Selv om Garbage Collector i Python automatisk lukker åpnet filer etter en stund i henhold til forhåndsinnstilte regler, må "med åpne" uttalelser sørge for at filen er rent lukket så snart kodeblokken er ferdig for å frigjøre ressurser.

Leselinjer i en tekstfil

For å lese innholdet i en fil, bruk kodeprøven nedenfor:

med åpne ('data.txt ',' r ') som f:
data = f.lese()
Print (data)

For eksempel, hvis "data.TXT ”-filen har 1-10 tall, hver på en ny linje, vil du få følgende utdata etter å ha kjørt ovennevnte kode:

Hele datadumpen til “Dataene.txt ”-filen lagres i variabelen“ Data ”. Hvis du vil lese linjer til en liste, kan du bruke følgende kodeprøver:

med åpne ('data.txt ',' r ') som f:
data = f.ReadLines ()
skrive ut (data) med åpne ('data.txt ',' r ') som f:
data = liste (f)
Print (data)

Merk at bruk av utdragene kan gi deg "\ n" (Newline) -tegn på slutten av hvert element på listen. For å fjerne disse Newline -tegnene, kan det hende du må sløyfe gjennom listen. Du kan begge opprette en ny liste og strippe Newline -tegn ved å bruke følgende kode i stedet:

data_list = []
med åpne ('data.txt ',' r ') som f:
for linje i f:
data_list.vedlegg (linje.strip ())
print (data_list)

Å kjøre koden over vil få deg til å følge utdata:

Skrive data til en åpnet fil

For å skrive data til en fil som åpnes ved hjelp av "med åpen" -uttalelse, må du levere en annen åpningsmodus som argument. Her er noen av modusene:

  • 'A' - brukt til å legge til data på slutten av en åpnet fil, oppretter ny fil hvis den ikke eksisterer
  • 'W' - Sletter innholdet i åpnet fil og skriver nye data, oppretter ny fil hvis den ikke eksisterer
  • 'R' - skrivebeskyttet modus (standardmodus hvis ingen argumenter leveres)
  • 'R+' - brukt til både lesing og skriving (startposisjon er i begynnelsen av filen)
  • 'B' - Fil åpnes i binær modus (nyttig for ikke -tekst -binære filer), kan kombineres med andre modus
  • 'A+' - brukt til å lese og legge til, oppretter en ny fil hvis den ikke eksisterer
  • 'w+' - brukt til lesing og skriving, oppretter en ny fil hvis den ikke eksisterer

Noen kodebiter ved hjelp av forskjellige moduser for å skrive data er listet opp nedenfor.

For å skrive nytt innhold til en tekstfil mens du sletter eksisterende data, bruk følgende prøve:

med åpne ('data.txt ',' w ') som f:
f.Skriv ("1 \ n2")

Etter å ha kjørt utdraget over, 1-10 tall i “Data.txt ”-filen skal erstattes av to nye linjer.

For å legge til linjer i begynnelsen av en tekstfil, må du bruke "søke" -metode for å gå tilbake til startposisjonen til filbufferen:

med åpne ('data.txt ',' r+') som f:
data = f.lese()
f.Søk (0)
f.Skriv ("-1 \ n0 \ n")
f.Skriv (data)

Etter å ha kjørt utdraget over, vil -1 og 0 tallene blir lagt til de to øverste linjene i “Data.txt ”-filer.

For å legge til data på slutten av filen, bruk følgende prøve:

med åpne ('data.txt ',' a ') som f:
f.Skriv ("11 \ N12")

Etter å ha kjørt utdraget over, vil 11 og 12 tall bli lagt til på slutten av filen.

Konklusjon

Innebygde klasser og metoder i Python gir en robust måte å håndtere tekstfiler. Med bare noen få kodelinjer kan du manipulere eksisterende data i en fil, samt sette inn nye linjer.