Python tillhandahåller inbyggda funktioner för att skapa, skriva och läsa filer. Det finns två typer av filer som kan hanteras i python, vanliga textfiler och binära filer (skrivna på binärt språk, 0:or och 1:or).
- Textfiler: I den här typen av fil avslutas varje textrad med ett specialtecken som kallas EOL (End of Line), vilket är det nya radtecknet ('
') i python som standard. Binära filer: I den här typen av fil finns det ingen terminator för en rad och data lagras efter konvertering till maskinförståeligt binärt språk.
Notera: För att veta mer om filhantering Klicka här .
Åtkomstläge
Åtkomstlägen styr vilken typ av operationer som är möjliga i den öppnade filen. Det hänvisar till hur filen kommer att användas när den väl har öppnats. Dessa lägen definierar också platsen för filhandtaget i filen. Filhandtaget är som en markör, som definierar varifrån data ska läsas eller skrivas i filen. Olika åtkomstlägen för att läsa en fil är –
- Endast läs ('r'): Öppna textfil för läsning. Handtaget är placerat i början av filen. Om filen inte finns, uppstår I/O-fel. Detta är också standardläget där filen öppnas. Läs och skriv ('r+') : Öppna filen för att läsa och skriva. Handtaget är placerat i början av filen. Händer I/O-fel om filen inte finns. Lägg till och läs ('a+') : Öppna filen för läsning och skrivning. Filen skapas om den inte finns. Handtaget är placerat i slutet av filen. Data som skrivs kommer att infogas i slutet, efter befintlig data.
Notera: För att veta mer om åtkomstläge Klicka här .
Öppna en fil
Det görs med funktionen open(). Ingen modul krävs för att importeras för denna funktion.
Syntax:
varför sträng oföränderlig i java
File_object = open(r'File_Name', 'Access_Mode')>
Filen bör finnas i samma katalog som python-programfilen annars, fullständig adress för filen bör skrivas på plats för filnamnet. Notera: R:et placeras före filnamnet för att förhindra att tecknen i filnamnssträngen behandlas som specialtecken. Till exempel, om det finns emp i filadressen, behandlas som tabbtecken och felet höjs med ogiltig adress. r:et gör strängen rå, det vill säga det talar om att strängen är utan några specialtecken. R kan ignoreras om filen finns i samma katalog och adressen inte placeras.
Python3
# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1> => open> ('MyFile.txt', 'r')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2> => open> (r'D:TextMyFile2.txt', 'r> +> ')> |
>
>
Här skapas fil1 som objekt för MyFile1 och fil2 som objekt för MyFile2.
Stänger en fil
close()-funktionen stänger filen och frigör minnesutrymmet som erhållits av den filen. Den används vid den tidpunkt då filen inte längre behövs eller om den ska öppnas i ett annat filläge.
Syntax:
File_object.close()>
Python3
vad är bikupa
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1> => open> ('MyFile.txt', 'r')> file1.close()> |
>
>
Läser från en fil
Det finns tre sätt att läsa data från en textfil.
- read() : Returnerar de lästa byten i form av en sträng. Läser n byte, om inget n anges, läser hela filen.
File_object.read([n])>
- readline() : Läser en rad i filen och returnerar i form av en sträng. För specificerat n, läser högst n byte. Läser dock inte mer än en rad, även om n överstiger radens längd.
File_object.readline([n])>
- readlines() : Läser alla rader och returnerar dem som varje rad ett strängelement i en lista.
File_object.readlines()>
Notera: ' ' behandlas som ett specialtecken av två byte.
Exempel:
Python3
# Program to show various ways to> # read data from a file.> # Creating a file> file1> => open> ('myfile.txt', 'w')> L> => ['This> is> Delhi
', 'This> is> Paris
', 'This> is> London
']> # Writing data to a file> 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> ))> print> ()> file1.seek(> 0> )> # readlines function> print> ('Output of Readlines function> is> ')> print> (file1.readlines())> print> ()> file1.close()> |
jämför sträng java
>
>
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 ']>
Med uttalande
with statement i Python används i undantagshantering för att göra koden renare och mycket mer läsbar. Det förenklar hanteringen av vanliga resurser som filströmmar. Till skillnad från ovanstående implementeringar finns det inget behov av att anropa file.close() när du använder med-satsen. Med uttalandet i sig säkerställer korrekt förvärv och frigörande av resurser.
Syntax:
with open filename as file:>
Python3
# Program to show various ways to> # read data from a file.> L> => ['This> is> Delhi
', 'This> is> Paris
', 'This> is> London
']> # Creating a file> with> open> ('myfile.txt', 'w') as file1:> > # Writing data to a file> > file1.write('Hello
')> > file1.writelines(L)> > file1.close()> # to change file access modes> with> open> ('myfile.txt', 'r> +> ') as file1:> > # Reading from a file> > print> (file1.read())> |
>
>
Produktion:
Hello This is Delhi This is Paris This is London>
Notera: Att veta mer om med statement Klicka här .