Åbning og lukning af en fil
For at læse data fra en tekstfil med navnet “data.txt ”, skal du bruge den“ åbne ”metode, der følger med officielle Python-builds. Tjek eksemplet nedenfor:
f = åben ('data.txt ',' r ')f.tæt()
Den første erklæring åbner “data.txt ”-fil i“ r ”(skrivebeskyttet) tilstand. Metoden "åben" accepterer et filnavn og tilstanden til håndtering af filen som argumenter. Udover “r” -tilstand er der også andre tilstande, som vil blive forklaret senere. Kodestykket ovenfor kører ikke nogen handlinger på den åbnede fil. Metoden "luk" bruges til at lukke den åbnede fil rent, så hukommelsen kan frigøres og for at undgå datakorruption i den åbnede fil, der nogle gange kan ske, hvis filen ikke lukkes ordentligt.
I stedet for at bruge "åben" -metoden til at håndtere åbning og lukning af filer, kan du kombinere den med "med" nøgleord og bruge "med åben" udsagn.
med åben ('data.txt ',' r ') som f:passere
Den største fordel ved at bruge en "med åben" erklæring er, at tolken automatisk lukker den åbnede fil sikkert, når "med åben" kodeblok parses fuldstændigt. Selvom affaldssamler i Python automatisk lukker åbnede filer efter et stykke tid i henhold til forudindstillede regler, sikrer "med åbne" udsagn, at filen lukkes rent så snart kodeblokken er færdig for at frigøre ressourcer.
Læser linjer i en tekstfil
For at læse indholdet af en fil skal du bruge nedenstående kodeeksempel:
med åben ('data.txt ',' r ') som f:data = f.Læs()
udskrive (data)
For eksempel, hvis “data.txt ”-fil har 1-10 numre, hver på en ny linje, får du følgende output efter at have kørt ovenstående kode:
12
3
4
5
6
7
8
9
10
Hele datadumpen af “dataene.txt ”-fil er gemt i“ data ”-variablen. Hvis du vil læse linjer til en liste, kan du bruge følgende kodeeksempler:
med åben ('data.txt ',' r ') som f:data = f.readlines ()
udskriv (data) med åben ('data.txt ',' r ') som f:
data = liste (f)
udskriv (data)
Bemærk, at brugen af ovenstående uddrag kan give dig “\ n” (newline) -tegnet i slutningen af hvert element på listen. For at fjerne disse nye linjetegn skal du muligvis løbe gennem listen. Du kan både oprette en ny liste og fjerne nye linjetegn ved at bruge følgende kode i stedet:
data_list = []med åben ('data.txt ',' r ') som f:
for linje i f:
dataliste.tilføj (linje.strip ())
udskrive (data_liste)
Når du kører ovenstående kode, får du følgende output:
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']Skrivning af data til en åbnet fil
For at skrive data til en fil, der åbnes ved hjælp af "med åben" -erklæringen, skal du angive en anden åbningstilstand som argument. Her er nogle af tilstande:
- 'a' - bruges til at tilføje data i slutningen af en åbnet fil, opretter en ny fil, hvis den ikke findes
- 'w' - sletter indholdet af den åbnede fil og skriver nye data, opretter en ny fil, hvis den ikke findes
- 'r' - skrivebeskyttet tilstand (standardtilstand, hvis der ikke er noget argument)
- 'r +' - bruges til både læsning og skrivning (startposition er i starten af filen)
- 'b' - filen åbnes i binær tilstand (nyttig til binære filer uden tekst), kan kombineres med andre tilstande
- 'a +' - bruges til læsning og tilføjelse, opretter en ny fil, hvis den ikke findes
- 'w +' - bruges til læsning og skrivning, opretter en ny fil, hvis den ikke findes
Nogle kodestykker, der bruger forskellige tilstande til at skrive data, er angivet nedenfor.
For at skrive nyt indhold til en tekstfil, mens du sletter eksisterende data, skal du bruge følgende eksempel:
med åben ('data.txt ',' w ') som f:f.skriv ("1 \ n2")
Efter at have kørt uddraget ovenfor, 1-10 numre i “data.txt ”-fil skal erstattes af to nye linjer.
For at tilføje linjer i begyndelsen af en tekstfil skal du bruge "søg" -metoden til at gå tilbage til startpositionen for filbufferen:
med åben ('data.txt ',' r + ') som f:data = f.Læs()
f.søg (0)
f.skriv ("- 1 \ n0 \ n")
f.skriv (data)
Efter at have kørt uddraget ovenfor, tilføjes -1 og 0 tal til de to øverste linjer i “data.txt ”filer.
For at tilføje data i slutningen af filen skal du bruge følgende eksempel:
med åben ('data.txt ',' a ') som f:f.skriv ("11 \ n12")
Efter at have kørt uddraget ovenfor tilføjes 11 og 12 tal i slutningen af filen.
Konklusion
Indbyggede klasser og metoder i Python giver en robust måde at håndtere tekstfiler på. Med kun få linier kode kan du manipulere eksisterende data i en fil samt indsætte nye linjer.