logo

Skriver till fil i Python

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 .



Innehållsförteckning

jordnöt vs jordnöt

Å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 skriv ('w'): Öppna filen för skrivning. För en befintlig fil 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 läsning och skrivning. 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.

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:

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', 'w')> > # 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 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




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

>

>

Skriver till fil

Det finns två sätt att skriva i en fil.

    write() : Infogar strängen str1 på en enda rad i textfilen.
File_object.write(str1)>
    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]>

Notera: ' ' behandlas som ett specialtecken av två byte. Exempel:

Python3




# Python program to demonstrate> # writing to file> # Opening a file> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> s>=> 'Hello '> # Writing a string to file> file1.write(s)> # Writing multiple strings> # at a time> file1.writelines(L)> # Closing file> file1.close()> # Checking if the data is> # written to file or not> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(file1.read())> file1.close()>

>

>

Produktion:

Hello This is Delhi This is Paris This is London>

Bifogar till en fil

När filen öppnas i tilläggsläge är handtaget placerat i slutet av filen. Data som skrivs kommer att infogas i slutet, efter befintlig data. Låt oss se exemplet nedan för att förtydliga skillnaden mellan skrivläge och tilläggsläge.

Python3




rekha ålder
# 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.read())> 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.read())> 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>

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> # write data to a file using with statement> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Writing to file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello ')> >file1.writelines(L)> # Reading from file> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading form a file> >print>(file1.read())>

>

>

Produktion:

Hello This is Delhi This is Paris This is London>

Obs: För att veta mer om med uttalande klicka här.

använder för uttalande:

steg:

För att skriva till en fil i Python med hjälp av en for-sats, kan du följa dessa steg:

Öppna filen med funktionen open() med lämpligt läge ('w' för att skriva).
Använd for-satsen för att gå över data du vill skriva till filen.
Använd filobjektets write()-metod för att skriva data till filen.
Stäng filen med filobjektets close()-metod.

I det här exemplet öppnas filen för skrivning med hjälp av med open('file.txt', 'w') som f-sats. Data som ska skrivas lagras i en lista som kallas data. For-satsen används för att loopa över varje rad med data i listan. Uttrycket f.write(line + ' ') skriver varje rad med data till filen med ett nyradstecken ( ) i slutet. Slutligen stängs filen automatiskt när med blocket slutar.

Python3




# Open the file for writing> with>open>(>'file.txt'>,>'w'>) as f:> ># Define the data to be written> >data>=> [>'This is the first line'>,>'This is the second line'>,>'This is the third line'>]> ># Use a for loop to write each line of data to the file> >for> line>in> data:> >f.write(line>+> ' '>)> ># Optionally, print the data as it is written to the file> >print>(line)> # The file is automatically closed when the 'with' block ends>

>

>

Produktion

This is the first line This is the second line This is the third line>

Närma sig:
Koden öppnar en fil som heter file.txt i skrivläge med hjälp av ett med block för att säkerställa att filen är ordentligt stängd när blocket slutar. Den definierar en lista med strängar som kallas data som representerar raderna som ska skrivas till filen. Koden använder sedan en for-loop för att iterera genom varje sträng i data, och skriver varje sträng till filen med metoden write(). Koden lägger till ett nyradstecken till varje sträng för att säkerställa att varje sträng skrivs på en ny rad i filen. Koden skriver valfritt ut varje sträng när den skrivs till filen.

chown kommando

Tidskomplexitet:
Både den ursprungliga koden och den alternativa koden har en tidskomplexitet på O(n), där n är antalet rader som ska skrivas till filen. Detta beror på att båda koderna måste iterera genom varje rad i datalistan för att skriva den till filen.

Utrymmes komplexitet:
Den ursprungliga koden och den alternativa koden har samma rymdkomplexitet som O(n), där n är antalet rader som ska skrivas till filen. Detta beror på att båda koderna måste skapa en lista med strängar som representerar raderna som ska skrivas till filen.