logo

Schrijven naar bestand in Python

Python biedt ingebouwde functies voor het maken, schrijven en lezen van bestanden. Er zijn twee soorten bestanden die in Python kunnen worden verwerkt: normale tekstbestanden en binaire bestanden (geschreven in binaire taal, 0s en 1s).

    Tekstbestanden: In dit type bestand wordt elke tekstregel afgesloten met een speciaal teken genaamd EOL (End of Line), wat standaard het nieuwe regelteken (' ') in Python is. Binaire bestanden: In dit type bestand is er geen terminator voor een regel en worden de gegevens opgeslagen nadat deze zijn omgezet in door machines begrijpelijke binaire taal.

Opmerking: Wilt u meer weten over bestandsbeheer? Klik hier .



Inhoudsopgave

Toegangsmodus

Toegangsmodi bepalen het type bewerkingen dat mogelijk is in het geopende bestand. Het verwijst naar hoe het bestand zal worden gebruikt zodra het is geopend. Deze modi definiëren ook de locatie van de bestandsingang in het bestand. Bestandshandle is als een cursor, die definieert vanaf waar de gegevens in het bestand moeten worden gelezen of geschreven. Verschillende toegangsmodi voor het lezen van een bestand zijn –

    Alleen schrijven (‘w’): Open het bestand om te schrijven. Voor een bestaand bestand worden de gegevens afgekapt en overschreven. Het handvat bevindt zich aan het begin van de vijl. Creëert het bestand als het bestand niet bestaat. Schrijven en lezen (‘w+’): Open het bestand om te lezen en te schrijven. Voor een bestaand bestand worden de gegevens afgekapt en overschreven. Het handvat bevindt zich aan het begin van de vijl. Alleen toevoegen (‘a’): Open het bestand om te schrijven. Het bestand wordt gemaakt als het niet bestaat. Het handvat bevindt zich aan het uiteinde van de vijl. De gegevens die worden geschreven, worden aan het einde ingevoegd, na de bestaande gegevens.

Opmerking: Voor meer informatie over de toegangsmodus Klik hier .



Een bestand openen

Dit wordt gedaan met behulp van de functie open(). Voor deze functie hoeft er geen module geïmporteerd te worden. Syntaxis:

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

Het bestand moet in dezelfde map staan ​​als het Python-programmabestand. Anders moet het volledige adres van het bestand op de plaats van de bestandsnaam worden geschreven. Opmerking: De r wordt vóór de bestandsnaam geplaatst om te voorkomen dat de tekens in de bestandsnaamreeks als speciaal teken worden behandeld. Als er bijvoorbeeld emp in het bestandsadres staat, wordt behandeld als het tabteken en wordt er een fout weergegeven als het adres ongeldig is. De r maakt de string rauw, dat wil zeggen dat hij aangeeft dat de string geen speciale tekens bevat. De r kan worden genegeerd als het bestand zich in dezelfde map bevindt en het adres niet wordt geplaatst.

Python3






govinda-acteur

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

>

>

Hier wordt bestand1 aangemaakt als object voor MijnBestand1 en bestand2 als object voor MijnBestand2.

Een bestand sluiten

De functie close() sluit het bestand en maakt de geheugenruimte vrij die door dat bestand is verkregen. Het wordt gebruikt op het moment dat het bestand niet langer nodig is of als het in een andere bestandsmodus moet worden geopend. Syntaxis:

File_object.close()>

Python3




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

>

>

Schrijven naar bestand

Er zijn twee manieren om in een bestand te schrijven.

    write() : Voegt de string str1 in op een enkele regel in het tekstbestand.
File_object.write(str1)>
    writelines() : Voor een lijst met stringelementen wordt elke string in het tekstbestand ingevoegd. Wordt gebruikt om meerdere strings tegelijk in te voegen.
File_object.writelines(L) for L = [str1, str2, str3]>

Opmerking: ‘ ’ wordt behandeld als een speciaal teken van twee bytes. Voorbeeld:

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

>

>

Uitgang:

Hello This is Delhi This is Paris This is London>

Toevoegen aan een bestand

Wanneer het bestand wordt geopend in de toevoegmodus, bevindt de handle zich aan het einde van het bestand. De gegevens die worden geschreven, worden aan het einde ingevoegd, na de bestaande gegevens. Laten we het onderstaande voorbeeld bekijken om het verschil tussen de schrijfmodus en de toevoegmodus te verduidelijken.

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

>

>

Uitgang:

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

Met verklaring

with statement in Python wordt gebruikt bij het afhandelen van uitzonderingen om de code schoner en veel leesbaarder te maken. Het vereenvoudigt het beheer van algemene bronnen zoals bestandsstromen. In tegenstelling tot de bovenstaande implementaties is het niet nodig om file.close() aan te roepen bij gebruik van een statement. De with-verklaring zelf zorgt voor een juiste verwerving en vrijgave van middelen. Syntaxis:

with open filename as file:>

Python3

java hoe te overschrijven




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

>

>

Uitgang:

Hello This is Delhi This is Paris This is London>

Let op: Klik hier voor meer informatie over de verklaring.

gebruiken voor verklaring:

stappen:

Om naar een bestand in Python te schrijven met behulp van een for-instructie, kunt u deze stappen volgen:

Open het bestand met de functie open() met de juiste modus (‘w’ voor schrijven).
Gebruik de for-instructie om de gegevens die u naar het bestand wilt schrijven, door te lussen.
Gebruik de write()-methode van het bestandsobject om de gegevens naar het bestand te schrijven.
Sluit het bestand met behulp van de close() -methode van het bestandsobject.

In dit voorbeeld wordt het bestand geopend om te schrijven met behulp van de instructie with open(‘file.txt’, ‘w’) as f. De te schrijven gegevens worden opgeslagen in een lijst genaamd data. De for-instructie wordt gebruikt om elke regel met gegevens in de lijst te herhalen. De instructie f.write(line + ‘ ’) schrijft elke regel met gegevens naar het bestand met een newline-teken ( ) aan het einde. Ten slotte wordt het bestand automatisch gesloten wanneer het with-blok eindigt.

Harald Baldr

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>

>

>

Uitvoer

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

Benadering:
De code opent een bestand met de naam file.txt in de schrijfmodus met behulp van een with-blok om ervoor te zorgen dat het bestand correct wordt gesloten wanneer het blok eindigt. Het definieert een lijst met strings, data genoemd, die de regels vertegenwoordigen die naar het bestand moeten worden geschreven. De code gebruikt vervolgens een for-lus om elke tekenreeks in gegevens te doorlopen, en schrijft elke tekenreeks naar het bestand met behulp van de write()-methode. De code voegt een newline-teken toe aan elke string om ervoor te zorgen dat elke string op een nieuwe regel in het bestand wordt geschreven. De code drukt optioneel elke tekenreeks af zoals deze naar het bestand wordt geschreven.

Tijdcomplexiteit:
Zowel de originele code als de alternatieve code hebben een tijdscomplexiteit van O(n), waarbij n het aantal regels is dat naar het bestand moet worden geschreven. Dit komt omdat beide codes elke regel in de gegevenslijst moeten doorlopen om deze naar het bestand te schrijven.

Ruimtecomplexiteit:
De originele code en de alternatieve code hebben dezelfde ruimtecomplexiteit van O(n), waarbij n het aantal regels is dat naar het bestand moet worden geschreven. Dit komt omdat beide codes een lijst met tekenreeksen moeten maken die de regels vertegenwoordigen die naar het bestand moeten worden geschreven.