Python har inbyggda funktioner för att skapa, skriva och läsa filer. Två typer av filer kan hanteras i Python, vanliga textfiler och binära filer (skrivna på binärt språk, 0:or och 1:or).
- Textfiler: I denna typ 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 maskinbegripligt binärt språk.
Den här artikeln kommer att fokusera på att öppna, stänga, läsa och skriva data i en textfil. Här kommer vi också att se hur man får Pytonorm utdata i textfil.
Filåtkomstlägen
Å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 Filhandtag i filen. Filhandtaget är som en markör, som definierar varifrån data ska läsas eller skrivas i filen och vi kan få Python-utdata i textfil.
Det finns 6 åtkomstlägen i Python:
- Endast läs ('r')
- Läs och skriv ('r+')
- Skriv endast ('w')
- Skriv och läs ('w+')
- Lägg endast till ('a')
- Lägg till och läs ('a+')
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-felet. Detta är också standardläget där en fil ö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.
Skriv endast ('w'): Öppna filen för skrivning. För de befintliga filerna trunkeras och skrivs data över. Handtaget är placerat i början av filen. Skapar filen om filen inte finns.
Skriv och läs ('w+') : Öppna filen för att läsa och skriva. För en befintlig fil trunkeras och skrivs data över. Handtaget är placerat i början av filen.
Lägg endast till ('a') : Öppna filen för 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.
Lägg till och läs ('a+'): Öppna filen för att läsa och skriva. Filen skapas om den inte finns. Handtaget är placerat i slutet av filen. Data som skrivs kommer att infogas i slutet, efter befintlig data.
Hur laddas filer in i primärminnet?
Det finns två typer av minne i en dator, dvs primärt och sekundärt minne, varje fil som du sparat eller någon som har sparats finns i sekundärt minne eftersom all data i primärminnet raderas när datorn stängs av. Så när du behöver ändra en textfil eller bara arbeta med dem i python måste du ladda den filen i primärminnet. Python interagerar med filer som laddas i primärminnet eller huvudminnet genom filhanterare (Så här ger ditt operativsystem åtkomst till python för att interagera med filen du öppnade genom att söka i filen i dess minne om den hittas returnerar den en filhanterare och sedan kan du arbeta med filen ).
Öppna en textfil i Python
Det görs med funktionen open(). Ingen modul krävs för att importeras för denna funktion.
File_object = open(r'File_Name','Access_Mode')>
Filen bör finnas i samma katalog som python-programfilen annars, filens fullständiga adress bör skrivas i stället för filnamnet. Notera r 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 ett fel uppstår 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.
Pytonorm
börjar med 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+'>)> |
>
>
Här skapas fil1 som ett objekt för MyFile1 och fil2 som objekt för MyFile2
Stänga en textfil i Python
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. File_object.close()
Pytonorm
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
delad av sträng java
>
Skriver till en fil i Python
Det finns två sätt att skriva i en fil:
- Använda write()
- Använda skrivlinjer()
Skriva till en Python-textfil med write()
skriv(): Infogar strängen str1 på en enda rad i textfilen.
File_object.write(str1)>
Skriva till en textfil med skrivlinjer()
writelines() : För en lista med strängelement infogas varje sträng i textfilen. Används för att infoga flera strängar samtidigt.
File_object.writelines(L) for L = [str1, str2, str3]>
Referens: write() VS writelines()
Läser från en fil i Python
Det finns tre sätt att läsa data från en textfil:
- Använder read()
- Använda readline()
- Använder sig av readlines()
Läsa från en fil med read()
läs(): 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])>
Läsa en textfil med readline()
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])>
Läsa en fil med hjälp av readlines()
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.
I det här exemplet skapas en fil med namnet myfile.txt och öppnas i skrivläge ('w'>). Data skrivs till filen med hjälp avwrite>ochwritelines>metoder. Filen öppnas sedan igen i läs- och tilläggsläge ('r+'>). Olika läsoperationer, bl.aread>,readline>,readlines>, och användningen avseek>, demonstrera olika sätt att hämta data från filen. Till slut stängs 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 ']>
Bifoga till en fil i Python
I det här exemplet öppnas en fil med namnet myfile.txt initialt i skrivläge ('w'>) för att skriva textrader. Filen öppnas sedan igen i tilläggsläge ('a'>), och Idag läggs till det befintliga innehållet. Utdata efter tillägg visas medreadlines>. Därefter öppnas filen igen i skrivläge, och innehållet skrivs över med Tomorrow. Den slutliga utmatningen efter skrivning visas medreadlines>.
Python3
# 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()> |
>
>
objektjämlikhet i java
Produktion:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Relaterad artikel:
- Arkivobjekt i Python