logo

Skriver til fil i Python

Python har innebygde funksjoner for å lage, skrive og lese filer. Det er to typer filer som kan håndteres i python, vanlige tekstfiler og binære filer (skrevet på binærspråk, 0s og 1s).

    Tekstfiler: I denne typen fil avsluttes hver tekstlinje med et spesialtegn kalt EOL (End of Line), som er det nye linjetegnet (' ') i python som standard. Binære filer: I denne typen fil er det ingen terminator for en linje, og dataene lagres etter å ha konvertert dem til maskinforståelig binærspråk.

Merk: For å vite mer om filhåndtering Klikk her .



Innholdsfortegnelse

Tilgangsmodus

Tilgangsmoduser styrer hvilken type operasjoner som er mulig i den åpnede filen. Det refererer til hvordan filen vil bli brukt når den er åpnet. Disse modusene definerer også plasseringen av filhåndtaket i filen. Filhåndtaket er som en markør, som definerer hvor dataene skal leses eller skrives i filen. Ulike tilgangsmoduser for å lese en fil er –

    Bare skriv ('w'): Åpne filen for skriving. For en eksisterende fil blir dataene avkortet og overskrevet. Håndtaket er plassert i begynnelsen av filen. Oppretter filen hvis filen ikke eksisterer. Skriv og les ('w+'): Åpne filen for lesing og skriving. For en eksisterende fil blir data avkortet og overskrevet. Håndtaket er plassert i begynnelsen av filen. Bare tilføy ('a'): Åpne filen for skriving. Filen opprettes hvis den ikke eksisterer. Håndtaket er plassert i enden av filen. Dataene som skrives vil bli satt inn på slutten, etter de eksisterende dataene.

Merk: For å vite mer om tilgangsmodus Klikk her .



Åpne en fil

Det gjøres ved å bruke funksjonen open(). Ingen modul er nødvendig for å bli importert for denne funksjonen. Syntaks:

File_object = open(r'File_Name', 'Access_Mode')>

Filen skal eksistere i samme katalog som python-programfilen ellers, den fullstendige adressen til filen skal skrives på stedet for filnavnet. Merk: r-en plasseres foran filnavnet for å forhindre at tegnene i filnavnstrengen behandles som spesialtegn. For eksempel, hvis det er emp i filadressen, behandles som tabulatortegnet og feilen oppstår for ugyldig adresse. r-en gjør strengen rå, det vil si at den forteller at strengen er uten spesialtegn. R-en kan ignoreres hvis filen er i samme katalog og adressen ikke blir plassert.

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>+>')>

>

>

Her opprettes fil1 som objekt for MinFil1 og fil2 som objekt for MinFil2.

Lukke en fil

close()-funksjonen lukker filen og frigjør minneplassen som er ervervet av den filen. Den brukes på det tidspunktet filen ikke lenger er nødvendig eller hvis den skal åpnes i en annen filmodus. Syntaks:

File_object.close()>

Python3




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

>

>

Skriver til fil

Det er to måter å skrive i en fil.

    write() : Setter inn strengen str1 på en enkelt linje i tekstfilen.
File_object.write(str1)>
    writelines() : For en liste over strengelementer settes hver streng inn i tekstfilen. Brukes til å sette inn flere strenger på en gang.
File_object.writelines(L) for L = [str1, str2, str3]>

Merk: ' ' behandles som et spesialtegn på to byte. Eksempel:

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()>

>

>

Produksjon:

Hello This is Delhi This is Paris This is London>

Legger til en fil

Når filen åpnes i tilleggsmodus, er håndtaket plassert på slutten av filen. Dataene som skrives vil bli satt inn på slutten, etter de eksisterende dataene. La oss se eksemplet nedenfor for å klargjøre forskjellen mellom skrivemodus og tilleggsmodus.

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.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()>

>

>

Produksjon:

Output of Readlines after appending This is Delhi This is Paris This is London Today Output of Readlines after writing Tomorrow>

Med uttalelse

with statement i Python brukes i unntakshåndtering for å gjøre koden renere og mye mer lesbar. Det forenkler administrasjonen av vanlige ressurser som filstrømmer. I motsetning til implementeringene ovenfor, er det ikke nødvendig å kalle file.close() når du bruker med setning. Med-erklæringen i seg selv sikrer riktig anskaffelse og frigjøring av ressurser. Syntaks:

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())>

>

>

Produksjon:

Hello This is Delhi This is Paris This is London>

Merk: For å vite mer om med uttalelse klikk her.

bruker for uttalelse:

trinn:

For å skrive til en fil i Python ved hjelp av en for-setning, kan du følge disse trinnene:

Åpne filen ved å bruke open()-funksjonen med riktig modus ('w' for skriving).
Bruk for-setningen til å gå over dataene du vil skrive til filen.
Bruk filobjektets write()-metode for å skrive dataene til filen.
Lukk filen ved å bruke filobjektets close()-metode.

I dette eksemplet åpnes filen for skriving ved å bruke med open('file.txt', 'w') som f-setning. Dataene som skal skrives lagres i en liste kalt data. For-setningen brukes til å gå over hver linje med data i listen. F.write(line + ' ')-setningen skriver hver linje med data til filen med et linjeskifttegn ( ) på slutten. Til slutt lukkes filen automatisk når med blokken slutter.

gruppering

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>

>

>

Produksjon

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

Nærme seg:
Koden åpner en fil kalt file.txt i skrivemodus ved å bruke en med blokk for å sikre at filen er ordentlig lukket når blokkeringen avsluttes. Den definerer en liste over strenger kalt data som representerer linjene som skal skrives til filen. Koden bruker deretter en for-løkke for å iterere gjennom hver streng i data, og skriver hver streng til filen ved å bruke write()-metoden. Koden legger til et nylinjetegn til hver streng for å sikre at hver streng skrives på en ny linje i filen. Koden skriver valgfritt ut hver streng etter hvert som den skrives til filen.

Tidskompleksitet:
Både den opprinnelige koden og den alternative koden har en tidskompleksitet på O(n), der n er antall linjer som skal skrives til filen. Dette er fordi begge kodene må iterere gjennom hver linje i datalisten for å skrive den til filen.

Plass kompleksitet:
Den opprinnelige koden og den alternative koden har samme romkompleksitet som O(n), der n er antall linjer som skal skrives til filen. Dette er fordi begge kodene må lage en liste over strenger som representerer linjene som skal skrives til filen.