Åpning og lukking av en fil
For å lese data fra en tekstfil som heter “data.txt ”, må du bruke“ åpen ”-metoden som følger med offisielle Python-bygg. Sjekk eksempelkoden nedenfor:
f = åpen ('data.txt ',' r ')f.Lukk()
Den første uttalelsen åpner “data.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 ovenfor kjører ikke noen operasjoner på den åpnede filen. Metoden “lukk” brukes til å lukke den åpnede filen rent slik at minnet kan frigjøres og for å unngå datakorrupsjon i den åpnede filen, som noen ganger kan skje hvis filen ikke lukkes ordentlig.
I stedet for å bruke "åpen" -metoden for å håndtere åpning og lukking av filer, kan du kombinere den med "med" nøkkelord og bruke "med åpen" uttalelse.
med åpen ('data.txt ',' r ') som f:sende
Den viktigste fordelen med å bruke en "med åpen" uttalelse er at tolk automatisk lukker den åpnede filen trygt når "med åpen" kodeblokk blir analysert helt. Selv om søppeloppsamleren i Python automatisk lukker åpnede filer etter en stund i henhold til forhåndsinnstilte regler, sørger "med åpne" uttalelser for at filen lukkes så snart kodeblokken er ferdig for å frigjøre ressurser.
Leselinjer i en tekstfil
For å lese innholdet i en fil, bruk kodeeksemplet nedenfor:
med åpen ('data.txt ',' r ') som f:data = f.lese()
skriv ut (data)
For eksempel hvis “data.txt ”-fil har 1-10 tall, hver på en ny linje, vil du få følgende utgang etter å ha kjørt ovennevnte kode:
12
3
4
5
6
7
8
9
10
Hele datadumpen av “dataene.txt-filen er lagret i "data" -variabelen. Hvis du vil lese linjer til en liste, kan du bruke følgende kodeeksempler:
med åpen ('data.txt ',' r ') som f:data = f.readlines ()
skriv ut (data) med åpen ('data.txt ',' r ') som f:
data = liste (f)
skriv ut (data)
Merk at bruk av utdragene ovenfor kan gi deg “\ n” (newline) -tegnet på slutten av hvert element i listen. For å fjerne disse nye linjetegnene, kan det hende du må gå gjennom listen. Du kan både opprette en ny liste og fjerne nye linjetegn ved å bruke følgende kode i stedet:
data_list = []med åpen ('data.txt ',' r ') som f:
for linje i f:
dataliste.legge til (linje.stripe ())
skriv ut (data_liste)
Å kjøre koden ovenfor gir deg følgende utdata:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Skrive data til en åpnet fil
For å skrive data til en fil som åpnes ved å bruke "med åpen" uttalelse, må du oppgi en annen åpningsmodus som argument. Her er noen av modusene:
- 'a' - brukes til å legge til data på slutten av en åpnet fil, oppretter ny fil hvis den ikke eksisterer
- 'w' - sletter innholdet i den åpnede filen og skriver nye data, oppretter ny fil hvis den ikke eksisterer
- 'r' - skrivebeskyttet modus (standardmodus hvis ingen argumenter leveres)
- 'r +' - brukes både til lesing og skriving (startposisjon er i begynnelsen av filen)
- 'b' - filen åpnes i binær modus (nyttig for binære filer som ikke er tekst), kan kombineres med andre moduser
- 'a +' - brukes til å lese og legge til, oppretter en ny fil hvis den ikke eksisterer
- 'w +' - brukes til å lese og skrive, oppretter en ny fil hvis den ikke eksisterer
Noen kodebiter som bruker forskjellige moduser for å skrive data, er oppført nedenfor.
For å skrive nytt innhold til en tekstfil mens du sletter eksisterende data, bruk følgende eksempel:
med åpen ('data.txt ',' w ') som f:f.skriv ("1 \ n2")
Etter å ha kjørt utdraget ovenfor, 1-10 tall i “dataene.txt ”-fil skal erstattes av to nye linjer.
For å legge til linjer i begynnelsen av en tekstfil, må du bruke "søk" -metoden for å gå tilbake til startposisjonen til filbufferen:
med åpen ('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 ovenfor, vil -1 og 0 tall legges til de to øverste linjene i “data.txt-filer.
For å legge til data på slutten av filen, bruk følgende eksempel:
med åpen ('data.txt ',' a ') som f:f.skriv ("11 \ n12")
Etter å ha kjørt utdraget ovenfor, vil 11 og 12 tall legges til på slutten av filen.
Konklusjon
Innebygde klasser og metoder i Python gir en robust måte å håndtere tekstfiler på. Med bare noen få kodelinjer kan du manipulere eksisterende data i en fil, samt sette inn nye linjer.