logo

Lezen en schrijven naar tekstbestanden in Python

Python biedt ingebouwde functies voor het maken, schrijven en lezen van bestanden. In Python kunnen twee soorten bestanden 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 ze zijn omgezet in door machines begrijpelijke binaire taal.

Dit artikel gaat over het openen, sluiten, lezen en schrijven van gegevens in een tekstbestand. Hier zullen we ook zien hoe we kunnen komen Python uitvoer in tekstbestand.



Bestandstoegangsmodi

Toegangsmodi bepalen het type bewerkingen dat mogelijk is in het geopende bestand. Het verwijst naar hoe het bestand zal worden gebruikt nadat het is geopend. Deze modi definiëren ook de locatie van de Vijlhandvat in het bestand. De bestandshandle is als een cursor, die definieert vanwaar de gegevens in het bestand moeten worden gelezen of geschreven en we Python-uitvoer in een tekstbestand kunnen krijgen.

Er zijn 6 toegangsmodi in Python:

  • Alleen-lezen (‘r’)
  • Lezen en schrijven (‘r+’)
  • Alleen schrijven (‘w’)
  • Schrijven en lezen (‘w+’)
  • Alleen toevoegen (‘a’)
  • Toevoegen en lezen (‘a+’)

Alleen-lezen (‘r’): Open een tekstbestand om te lezen. Het handvat bevindt zich aan het begin van de vijl. Als het bestand niet bestaat, ontstaat er een I/O-fout. Dit is ook de standaardmodus waarin een bestand wordt geopend.



Lezen en schrijven (‘r+’): Open het bestand om te lezen en te schrijven. Het handvat bevindt zich aan het begin van de vijl. Verhoogt I/O-fout als het bestand niet bestaat.

Alleen schrijven (‘w’): Open het bestand om te schrijven. Voor de bestaande bestanden worden de gegevens ingekort 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 voor lezen en 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.

Toevoegen en lezen (‘a+’): Open het bestand om te lezen en 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.

Hoe bestanden in het primaire geheugen worden geladen?

Er zijn twee soorten geheugen in een computer, d.w.z. primair en secundair geheugen. Elk bestand dat u hebt opgeslagen of iemand anders heeft opgeslagen, bevindt zich in het secundaire geheugen, omdat alle gegevens in het primaire geheugen worden verwijderd wanneer de computer wordt uitgeschakeld. Dus als u een tekstbestand moet wijzigen of er gewoon mee wilt werken in Python, moet u dat bestand in het primaire geheugen laden. Python communiceert met bestanden die in het primaire geheugen of het hoofdgeheugen zijn geladen bestandsbehandelaars (Dit is hoe uw besturingssysteem toegang geeft tot Python om te communiceren met het bestand dat u hebt geopend door het bestand in zijn geheugen te doorzoeken. Als het wordt gevonden, wordt er een bestandshandler geretourneerd en kunt u met het bestand werken).

Een tekstbestand openen in Python

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

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 worden geschreven in plaats van de bestandsnaam. Merk op R wordt vóór de bestandsnaam geplaatst om te voorkomen dat de tekens in de bestandsnaamreeks als speciale tekens worden behandeld. Als er bijvoorbeeld emp in het bestandsadres staat, wordt behandeld als het tabteken en wordt er een foutmelding gegeven dat 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.

Python




naam van make-upproducten

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

>

>

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

Een tekstbestand sluiten in Python

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

Python




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

>

Diana Ankudinova

>

Schrijven naar een bestand in Python

Er zijn twee manieren om in een bestand te schrijven:

  • Schrijven() gebruiken
  • Schrijfregels() gebruiken

Schrijven naar een Python-tekstbestand met write()

schrijven() : Voegt de tekenreeks str1 in op één regel in het tekstbestand.

File_object.write(str1)>

Schrijven naar een tekstbestand met writelines()

schrijfregels() : Voor een lijst met stringelementen wordt elke string ingevoegd in het tekstbestand. Wordt gebruikt om meerdere strings tegelijk in te voegen.

File_object.writelines(L) for L = [str1, str2, str3]>

Referentie: write() VS schrijfregels()

Lezen uit een bestand in Python

Er zijn drie manieren om gegevens uit een tekstbestand te lezen:

  • Lees() gebruiken
  • Leesregel() gebruiken
  • Gebruik makend van leesregels()

Lezen uit een bestand met behulp van read()

lezen() : Retourneert de gelezen bytes in de vorm van een tekenreeks. Leest n bytes. Als er geen n is opgegeven, wordt het hele bestand gelezen.

File_object.read([n])>

Een tekstbestand lezen met readline()

Lees regel() : Leest een regel van het bestand en retourneert in de vorm van een tekenreeks. Voor gespecificeerde n wordt maximaal n bytes gelezen. Leest echter niet meer dan één regel, zelfs als n de lengte van de regel overschrijdt.

File_object.readline([n])>

Een bestand lezen met behulp van readlines()

leesregels() : Leest alle regels en retourneert ze als elke regel als een stringelement in een lijst.

 File_object.readlines()>

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

In dit voorbeeld wordt een bestand met de naam mijnbestand.txt gemaakt en geopend in de schrijfmodus ('w'>). Gegevens worden naar het bestand geschreven met behulp vanwrite>Enwritelines>methoden. Het bestand wordt vervolgens opnieuw geopend in de lees- en toevoegmodus ('r+'>). Diverse leesbewerkingen, waaronderread>,readline>,readlines>, en het gebruik vanseek>, demonstreer verschillende manieren om gegevens uit het bestand op te halen. Tenslotte wordt het dossier gesloten.

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

>

>

Uitgang:

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 
']>

Toevoegen aan een bestand in Python

In dit voorbeeld wordt een bestand met de naam mijnbestand.txt aanvankelijk geopend in de schrijfmodus ('w'>) om regels tekst te schrijven. Het bestand wordt vervolgens opnieuw geopend in de toevoegmodus ('a'>), en Vandaag wordt toegevoegd aan de bestaande inhoud. De uitvoer na het toevoegen wordt weergegeven metreadlines>. Vervolgens wordt het bestand opnieuw geopend in de schrijfmodus, waarbij de inhoud wordt overschreven met Tomorrow. De uiteindelijke uitvoer na het schrijven wordt weergegeven metreadlines>.

Python3


wat is const in java



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

>

>

Uitgang:

Output of Readlines after appending ['This is Delhi 
', 'This is Paris 
', 'This is London 
', 'Today 
'] Output of Readlines after writing ['Tomorrow 
']>

Gerelateerd artikel:

  • Bestandsobjecten in Python