logo

Lese og skrive til tekstfiler i Python

Python har innebygde funksjoner for å lage, skrive og lese filer. To typer filer kan håndteres i Python, vanlige tekstfiler og binære filer (skrevet på binærspråk, 0s og 1s).

  • Tekstfiler: I denne typen fil avsluttes hver tekstlinje med et spesialtegn kalt EOL (End of Line), som er det nye linjetegnet (' ') i Python som standard.
  • Binære filer: I denne typen fil er det ingen terminator for en linje, og dataene lagres etter konvertering til maskinforståelig binærspråk.

Denne artikkelen vil fokusere på å åpne, lukke, lese og skrive data i en tekstfil. Her vil vi også se hvordan du får Python utgang i tekstfil.



Filtilgangsmoduser

Tilgangsmoduser styrer hvilken type operasjoner som er mulig i den åpnede filen. Det refererer til hvordan filen vil bli brukt når den er åpnet. Disse modusene definerer også plasseringen av Filhåndtak i filen. Filhåndtaket er som en markør, som definerer hvor dataene skal leses eller skrives i filen, og vi kan få Python-utdata i tekstfil.

Det er 6 tilgangsmoduser i Python:

  • Skrivebeskyttet ('r')
  • Les og skriv ('r+')
  • Skriv kun ('w')
  • Skriv og les ('w+')
  • Bare tilføy ('a')
  • Legg til og les ('a+')

Skrivebeskyttet ('r'): Åpne tekstfil for lesing. Håndtaket er plassert i begynnelsen av filen. Hvis filen ikke eksisterer, oppstår I/O-feilen. Dette er også standardmodusen som en fil åpnes i.



Les og skriv ('r+'): Åpne filen for lesing og skriving. Håndtaket er plassert i begynnelsen av filen. Får I/O-feil hvis filen ikke eksisterer.

Skriv bare ('w'): Åpne filen for skriving. For de eksisterende filene blir dataene avkortet og overskrevet. Håndtaket er plassert i begynnelsen av filen. Oppretter filen hvis filen ikke eksisterer.

Skriv og les ('w+') : Åpne filen for lesing og skriving. For en eksisterende fil blir data avkortet og overskrevet. Håndtaket er plassert i begynnelsen av filen.



Bare tilføy ('a') : Åpne filen for skriving. Filen opprettes hvis den ikke eksisterer. Håndtaket er plassert i enden av filen. Dataene som skrives vil bli satt inn på slutten, etter de eksisterende dataene.

Legg til og les ('a+'): Åpne filen for lesing og skriving. Filen opprettes hvis den ikke eksisterer. Håndtaket er plassert i enden av filen. Dataene som skrives vil bli satt inn på slutten, etter de eksisterende dataene.

Hvordan lastes filer inn i primærminnet?

Det er to typer minne i en datamaskin, dvs. primært og sekundært minne, hver fil du har lagret, eller noen som er lagret, er i sekundærminnet fordi data i primærminnet slettes når datamaskinen slås av. Så når du trenger å endre en tekstfil eller bare jobbe med dem i python, må du laste den filen inn i primærminnet. Python samhandler med filer som er lastet inn i primærminnet eller hovedminnet gjennom filbehandlere (Dette er hvordan operativsystemet ditt gir tilgang til python for å samhandle med filen du åpnet ved å søke i filen i minnet hvis den blir funnet, returnerer den en filbehandler og så kan du jobbe med filen ).

Åpne en tekstfil i Python

Det gjøres ved å bruke funksjonen open(). Ingen modul er nødvendig for å bli importert for denne funksjonen.

File_object = open(r'File_Name','Access_Mode')>

Filen bør eksistere i samme katalog som python-programfilen ellers, den fullstendige adressen til filen skal skrives i stedet for filnavnet. Merk: Den r plasseres foran filnavnet for å forhindre at tegnene i filnavnstrengen behandles som spesialtegn. For eksempel, hvis det er emp i filadressen, behandles som tabulatortegnet, og det vises en feil med ugyldig adresse. r-en gjør strengen rå, det vil si at den forteller at strengen er uten spesialtegn. R-en kan ignoreres hvis filen er i samme katalog og adressen ikke blir plassert.

Python




liste vs sett i java

# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r>'D:TextMyFile2.txt'>,>'w+'>)>

>

>

Her opprettes fil1 som et objekt for MinFil1 og fil2 som objekt for MinFil2

Lukke en tekstfil i Python

close()-funksjonen lukker filen og frigjør minneplassen som er ervervet av den filen. Den brukes på det tidspunktet filen ikke lenger er nødvendig eller hvis den skal åpnes i en annen filmodus. File_object.close()

Python




# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()>

>

maven installere

>

Skriver til en fil i Python

Det er to måter å skrive i en fil:

  • Bruker skrive()
  • Bruke skrivelinjer()

Skrive til en Python-tekstfil ved å bruke write()

skrive() : Setter inn strengen str1 på en enkelt linje i tekstfilen.

File_object.write(str1)>

Skrive til en tekstfil ved å bruke skrivelinjer()

skrivelinjer(): For en liste over strengelementer settes hver streng inn i tekstfilen. Brukes til å sette inn flere strenger på en gang.

File_object.writelines(L) for L = [str1, str2, str3]>

Henvisning: skrive() VS skrivelinjer()

Leser fra en fil i Python

Det er tre måter å lese data fra en tekstfil på:

Lese fra en fil ved å bruke read()

les(): Returnerer lesebytene i form av en streng. Leser n byte, hvis ingen n er spesifisert, leser hele filen.

File_object.read([n])>

Lese en tekstfil ved å bruke readline()

readline() : Leser en linje i filen og returnerer i form av en streng. For spesifisert n, leser maksimalt n byte. Leser imidlertid ikke mer enn én linje, selv om n overskrider linjens lengde.

File_object.readline([n])>

Lese en fil ved å bruke readlines()

readlines(): Leser alle linjene og returnerer dem som hver linje et strengelement i en liste.

 File_object.readlines()>

Merk: ' ' behandles som et spesialtegn på to byte.

I dette eksemplet opprettes og åpnes en fil med navnet myfile.txt i skrivemodus ('w'>). Data skrives til filen ved hjelp avwrite>ogwritelines>metoder. Filen åpnes deretter på nytt i lese- og tilleggsmodus ('r+'>). Ulike leseoperasjoner, bl.aread>,readline>,readlines>, og bruken avseek>, demonstrere forskjellige måter å hente data fra filen på. Til slutt lukkes filen.

Python3




# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> # is placed to indicate EOL (End of Line)> file1.write(>'Hello '>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()>

>

>

Produksjon:

Output of Read function is  Hello  This is Delhi  This is Paris  This is London  Output of Readline function is  Hello  Output of Read(9) function is  Hello  Th Output of Readline(9) function is  Hello  Output of Readlines function is  ['Hello 
', 'This is Delhi 
', 'This is Paris 
', 'This is London 
']>

Legge til en fil i Python

I dette eksemplet åpnes først en fil med navnet myfile.txt i skrivemodus ('w'>) for å skrive tekstlinjer. Filen åpnes deretter på nytt i tilleggsmodus ('a'>), og Today legges til det eksisterende innholdet. Utgangen etter tilføying vises ved hjelp avreadlines>. Deretter gjenåpnes filen i skrivemodus, og innholdet overskrives med Tomorrow. Den endelige utgangen etter skriving vises medreadlines>.

Python3

forskjell på is og snø




# Python program to illustrate> # Append vs write mode> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)>#append mode> file1.write(>'Today '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.readlines())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)>#write mode> file1.write(>'Tomorrow '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.readlines())> print>()> file1.close()>

>

>

Produksjon:

Output of Readlines after appending ['This is Delhi 
', 'This is Paris 
', 'This is London 
', 'Today 
'] Output of Readlines after writing ['Tomorrow 
']>

Relatert artikkel:

  • Filobjekter i Python