Python har indbyggede funktioner til at oprette, skrive og læse filer. To typer filer kan håndteres i Python, normale tekstfiler og binære filer (skrevet på binært sprog, 0'er og 1'er).
- Tekstfiler: I denne type fil afsluttes hver tekstlinje med et specialtegn kaldet EOL (End of Line), som er det nye linjetegn (' ') i Python som standard.
- Binære filer: I denne type fil er der ingen terminator for en linje, og dataene gemmes efter konvertering til maskinforståeligt binært sprog.
Denne artikel vil fokusere på at åbne, lukke, læse og skrive data i en tekstfil. Her vil vi også se, hvordan du får Python output i tekstfil.
Filadgangstilstande
Adgangstilstande styrer den type operationer, der er mulige i den åbnede fil. Det refererer til, hvordan filen vil blive brugt, når den er åbnet. Disse tilstande definerer også placeringen af Filhåndtag i filen. Filhåndtaget er som en markør, der definerer, hvorfra dataene skal læses eller skrives i filen, og vi kan få Python-output i tekstfil.
Der er 6 adgangstilstande i Python:
- Skrivebeskyttet ('r')
- Læs og skriv ('r+')
- Skriv kun ('w')
- Skriv og læs ('w+')
- Tilføj kun ('a')
- Tilføj og læs ('a+')
Skrivebeskyttet ('r'): Åbn tekstfil til læsning. Håndtaget er placeret i begyndelsen af filen. Hvis filen ikke findes, rejser I/O-fejlen. Dette er også standardtilstanden, hvor en fil åbnes.
Læs og skriv ('r+'): Åbn filen for at læse og skrive. Håndtaget er placeret i begyndelsen af filen. Hæver I/O-fejl, hvis filen ikke eksisterer.
Skriv kun ('w'): Åbn filen til skrivning. For de eksisterende filer er dataene afkortet og overskrevet. Håndtaget er placeret i begyndelsen af filen. Opretter filen, hvis filen ikke findes.
Skriv og læs ('w+') : Åbn filen for at læse og skrive. For en eksisterende fil afkortes data og overskrives. Håndtaget er placeret i begyndelsen af filen.
Tilføj kun ('a') : Åbn filen til skrivning. Filen oprettes, hvis den ikke findes. Håndtaget er placeret for enden af filen. Dataene, der skrives, vil blive indsat til sidst, efter de eksisterende data.
Tilføj og læs ('a+'): Åbn filen for at læse og skrive. Filen oprettes, hvis den ikke findes. Håndtaget er placeret for enden af filen. De data, der skrives, vil blive indsat til sidst, efter de eksisterende data.
Hvordan indlæses filer i den primære hukommelse?
Der er to slags hukommelse i en computer, dvs. primær og sekundær hukommelse, hver fil, du har gemt, eller nogen, der er gemt, er i sekundær hukommelse, fordi alle data i den primære hukommelse slettes, når computeren slukkes. Så når du skal ændre en tekstfil eller bare arbejde med dem i python, skal du indlæse den fil i den primære hukommelse. Python interagerer med filer indlæst i primær hukommelse eller hovedhukommelse igennem filbehandlere (Sådan giver dit operativsystem adgang til python for at interagere med den fil, du åbnede ved at søge i filen i dens hukommelse, hvis den findes, returnerer den en filbehandler, og så kan du arbejde med filen).
Åbning af en tekstfil i Python
Det gøres ved hjælp af funktionen open(). Der kræves ikke noget modul for at blive importeret til denne funktion.
File_object = open(r'File_Name','Access_Mode')>
Filen skal findes i samme mappe som python-programfilen ellers, den fulde adresse på filen skal skrives i stedet for filnavnet. Bemærk: Den r placeres før filnavnet for at forhindre, at tegnene i filnavnestrengen behandles som specialtegn. For eksempel, hvis der er emp i filadressen, behandles som tabulatortegn, og der fremkommer en fejl med ugyldig adresse. r'et gør strengen rå, det vil sige, at den fortæller, at strengen er uden specialtegn. r'et kan ignoreres, hvis filen er i samme mappe, og adressen ikke placeres.
Python
oprette forbindelse til en database 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 oprettes fil1 som et objekt for MyFile1 og fil2 som objekt for MyFile2
Lukning af en tekstfil i Python
close()-funktionen lukker filen og frigør den hukommelsesplads, der er erhvervet af den pågældende fil. Den bruges på det tidspunkt, hvor filen ikke længere er nødvendig, eller hvis den skal åbnes i en anden filtilstand. File_object.close()
Python
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
saira banu skuespiller
>
Skrivning til en fil i Python
Der er to måder at skrive i en fil:
- Brug af write()
- Brug af skrivelinjer()
Skrivning til en Python-tekstfil ved hjælp af write()
skriv(): Indsætter strengen str1 i en enkelt linje i tekstfilen.
File_object.write(str1)>
Skrivning til en tekstfil ved hjælp af skrivelinjer()
skrivelinjer(): For en liste over strengelementer indsættes hver streng i tekstfilen. Bruges til at indsætte flere strenge på én gang.
File_object.writelines(L) for L = [str1, str2, str3]>
Reference: skrive() VS skrivelinjer()
Læser fra en fil i Python
Der er tre måder at læse data fra en tekstfil på:
- Brug af read()
- Brug af readline()
- Ved brug af læselinjer()
Læsning fra en fil ved hjælp af read()
Læs() : Returnerer de læste bytes i form af en streng. Læser n bytes, hvis der ikke er angivet n, læser hele filen.
File_object.read([n])>
Læsning af en tekstfil ved hjælp af readline()
readline(): Læser en linje i filen og returnerer i form af en streng. For specificeret n læser højst n bytes. Læser dog ikke mere end én linje, selvom n overstiger linjens længde.
File_object.readline([n])>
Læsning af en fil ved hjælp af readlines()
readlines(): Læser alle linjerne og returnerer dem som hver linje et strengelement i en liste.
File_object.readlines()>
Bemærk: ' ' behandles som et specialtegn på to bytes.
I dette eksempel oprettes og åbnes en fil med navnet myfile.txt i skrivetilstand ('w'>). Data skrives til filen vhawrite>ogwritelines>metoder. Filen genåbnes derefter i læse- og tilføjelsestilstand ('r+'>). Forskellige læseoperationer, bl.aread>,readline>,readlines>, og brugen afseek>, demonstrere forskellige måder at hente data fra filen på. Til sidst 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()> |
>
>
Produktion:
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 ']>
Tilføjelse til en fil i Python
I dette eksempel åbnes en fil med navnet myfile.txt til at begynde med i skrivetilstand ('w'>) for at skrive tekstlinjer. Filen genåbnes derefter i tilføjelsestilstand ('a'>), og Today føjes til det eksisterende indhold. Outputtet efter tilføjelse vises vhareadlines>. Efterfølgende genåbnes filen i skrivetilstand, hvorved indholdet overskrives med Tomorrow. Det endelige output efter skrivning vises vhareadlines>.
Python3
java arkitektur
# 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()> |
>
>
Produktion:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Relateret artikel:
- Filobjekter i Python