Python File Handling: Hvordan lage, åpne, legge til, lese, skrive

Innholdsfortegnelse:

Anonim

I Python er det ikke behov for å importere eksternt bibliotek for å lese og skrive filer. Python gir en innebygd funksjon for å lage, skrive og lese filer.

I denne filhåndteringen i Python-opplæringen vil vi lære:

  • Hvordan åpne en tekstfil i Python
  • Hvordan lage en tekstfil i Python
  • Hvordan legge til en fil i Python
  • Hvordan lese filer i Python
  • Hvordan lese en fil linje for linje i Python
  • Filmodus i Python

Hvordan åpne en tekstfil i Python

For å åpne en fil, må du bruke den innebygde

openfunksjon. Python åpen filfunksjon returnerer et filobjekt som inneholder metoder og attributter for å utføre forskjellige operasjoner for å åpne filer i Python.

Syntaks for Python åpen filfunksjon

file_object = open("filename", "mode")

Her,

  • filnavn: gir navnet på filen som filobjektet har åpnet.
  • modus: attributtet til et filobjekt forteller deg hvilken modus en fil ble åpnet i.

Flere detaljer om disse modusene er forklart nedenfor

Hvordan lage en tekstfil i Python

Med Python Write to File kan du opprette .text-filer (guru99.txt) ved å bruke koden, vi har demonstrert her:

Trinn 1)

f= open("guru99.txt","w+")
  • Vi erklærte variabelen f for å åpne en fil med navnet guru99.txt. Åpne tar to argumenter, filen vi ønsker å åpne og en streng som representerer hvilke tillatelser eller operasjoner vi ønsker å gjøre på filen
  • Her brukte vi "w" -bokstaven i argumentet vårt, som indikerer at Python skriver til filen, og det vil opprette en fil hvis den ikke finnes i biblioteket
  • Plusstegn indikerer både lese og skrive for Python create file-operasjon.

Steg 2)

for i in range(10):f.write("This is line %d\r\n" % (i+1))
  • Vi har en for loop som går over et område på 10 tall.
  • Bruke skrivefunksjonen til å legge inn data i filen.
  • Utgangen vi vil gjenta i filen er "dette er linjenummer", som vi erklærer med Python skrive til tekstfilfunksjon og deretter prosent d (viser heltall)
  • Så i utgangspunktet setter vi inn linjenummeret vi skriver, og legger det i en vognretur og et nytt linjetegn

Trinn 3)

f.close() 
  • Dette lukker forekomsten av filen guru99.txt som er lagret

Her er resultatet etter kjøring av kode for Python-opprettingsfil

Når du klikker på tekstfilen din i vårt tilfelle "guru99.txt", vil den se ut som dette

Hvordan legge til en fil i Python

Du kan også legge til / legge til en ny tekst til den allerede eksisterende filen eller en ny fil.

Trinn 1)

f=open("guru99.txt", "a+")

Nok en gang hvis du kunne se et pluss-tegn i koden, indikerer det at den vil opprette en ny fil hvis den ikke eksisterer. Men i vårt tilfelle har vi allerede filen, så vi er ikke pålagt å opprette en ny fil for at Python skal legge til filoperasjonen.

Steg 2)

for i in range(2):f.write("Appended line %d\r\n" % (i+1))

Dette vil skrive data inn i filen i tilleggsmodus.

Du kan se utdataene i "guru99.txt" -filen. Utgangen av koden er at tidligere fil er lagt til med nye data av Python, vedlegg til filoperasjon.

Hvordan lese filer i Python

Du kan lese en fil i Python ved å ringe .txt-filen i en "lesemodus" (r).

Trinn 1) Åpne filen i lesemodus

f=open("guru99.txt", "r")

Trinn 2) Vi bruker modusfunksjonen i koden for å sjekke at filen er i åpen modus. Hvis ja, fortsetter vi

if f.mode == 'r':

Trinn 3) Bruk f.read til å lese fildata og lagre den i variabelt innhold for å lese filer i Python

contents =f.read()

Trinn 4) Skriv ut innholdet for Python-lest tekstfil

Her er utdataene fra Python-lesefileksemplet:

Hvordan lese en fil linje for linje i Python

Du kan også lese .txt-filen din linje for linje hvis dataene dine er for store til å lese. readlines () -koden vil adskille dataene dine i lettlest modus.

Når du kjører koden ( f1 = f.readlines ()) for å lese filen linje for linje i Python, vil den skille hver linje og presentere filen i et lesbart format. I vårt tilfelle er linjen kort og lesbar, vil utgangen se ut som lesemodus. Men hvis det er en kompleks datafil som ikke er lesbar, kan denne koden være nyttig.

Filmodus i Python

Følgende er de forskjellige filmodusene i Python :

Modus Beskrivelse
'r' Dette er standardmodus. Den åpner filen for lesing.
'w' Denne modusen åpner filen for skriving. Hvis filen ikke eksisterer, oppretter den en ny fil. Hvis filen eksisterer, avkortes den.
'x' Oppretter en ny fil. Hvis filen allerede eksisterer, mislykkes operasjonen.
'en' Åpne filen i tilleggsmodus. Hvis filen ikke eksisterer, oppretter den en ny fil.
't' Dette er standardmodus. Den åpnes i tekstmodus.
'b' Dette åpnes i binær modus.
'+' Dette åpner en fil for lesing og skriving (oppdatering)

Her er den komplette koden for Python-utskrift () til fileksempel

Python 2 Eksempel

def main ():f = åpen ("guru99.txt", "w +")# f = åpen ("guru99.txt", "a +")for jeg innen rekkevidde (10):f.write ("Dette er linje% d \ r \ n"% (i + 1))f.lukk ()#Åpne filen tilbake og les innholdet# f = åpen ("guru99.txt", "r")# if f.mode == 'r':# innhold = f.read ()# utskriftsinnhold#eller leselinjer leser den enkelte linjen i en liste#fl = f.readlines ()#for x in fl:#print xhvis __navn __ == "__main__":hoved()

Python 3 Eksempel

Nedenfor er en annen Python-utskrift () til fileksempel:

def main ():f = åpen ("guru99.txt", "w +")# f = åpen ("guru99.txt", "a +")for jeg innen rekkevidde (10):f.write ("Dette er linje% d \ r \ n"% (i + 1))f.lukk ()#Åpne filen tilbake og les innholdet# f = åpen ("guru99.txt", "r")#if f.mode == 'r':# innhold = f.read ()# utskrift (innhold)#eller leselinjer leser den enkelte linjen i en liste#fl = f.readlines ()#for x in fl:#print (x)hvis __navn __ == "__main__":hoved()

Sammendrag

  • Python lar deg lese, skrive og slette filer
  • Bruk funksjonen åpen ("filnavn", "w +") for å lage Python tekstfil. + Forteller pythontolken for Python åpen tekstfil med lese- og skrivetillatelser.
  • For å legge til data i en eksisterende fil eller Python-utskrift til fil-operasjon, bruk kommandoen åpen ("Filnavn", " a ")
  • Bruk Python-lesefilfunksjonen til å lese HELE innholdet i en fil
  • Bruk readlines-funksjonen til å lese innholdet i filen en etter en.