Bestanden lezen en schrijven met Python

Reading Writing Files With Python



Bestanden worden gebruikt om gegevens op een schijf op te slaan en te ordenen. We gebruiken vaak bestanden wanneer we gegevens permanent op een harde schijf moeten opslaan. Stel bijvoorbeeld dat we een softwaresysteem bouwen dat studentendossiers bijhoudt. Nu moeten we de studentgegevens permanent opslaan voor toekomstig gebruik. Voor dit doel kunnen we bestanden gebruiken om gegevens op te slaan, en later kunnen we deze bestanden openen en op elk moment toegang krijgen tot de opgeslagen gegevens.

Het lezen en schrijven van bestanden zijn veel voorkomende functies in Python. Het is gemakkelijk om bestanden in Python te maken, te lezen en te bewerken. Python wordt geleverd met ingebouwde functies voor het lezen en schrijven van bestanden. U kunt bestanden openen, schrijven en lezen met behulp van de ingebouwde functies van Python. De bestandsbewerkingen worden in de volgende volgorde uitgevoerd:







  • Een bestand openen
  • Lezen/schrijven bestand
  • Sluit bestand

Met Python kun je tekstbestanden en binaire bestanden maken. Tekstbestanden slaan gegevens op in de vorm van tekens en elke regel eindigt in een nieuwe regel (' '). In binaire bestanden worden gegevens opgeslagen in de vorm van bytes (1 en 0).



In dit artikel leer je:



  • Enkele van de verschillende bestandsmodi in Python
  • Hoe een bestand te openen?
  • Hoe maak je een bestand aan
  • Hoe gegevens naar een bestand te schrijven
  • Hoe een bestand te lezen

Verschillende bestandsmodi in Python

Modi in Python beschrijven het type bewerking dat op het bestand moet worden uitgevoerd. Wanneer u een bestand opent, moet u de modus opgeven. Elk bestand heeft een bestandshandle. De bestandshandle werkt als een cursor die aangeeft waar gegevens moeten worden geschreven en gelezen. Het is een soort locatieaanwijzer. De volgende omvatten enkele van de verschillende toegangsbestandsmodi in Python:





Modus Beschrijving
R Opent het bestand in leesmodus. Deze modus is standaard geselecteerd als u geen modus definieert tijdens het openen van het bestand in Python.
in Schrijft een bestand. Deze modus maakt een bestand aan als het bestand nog niet bestaat en overschrijft de gegevens in het bestand.
r+ Wordt gebruikt om het bestand te lezen en te schrijven. Het toont een fout als het bestand niet bestaat.
tot Opent het bestand in de toevoegmodus. De bestandshandle bevindt zich aan het einde van het bestand. Deze modus overschrijft de bestaande gegevens niet, maar begint met het schrijven van gegevens aan het einde van het bestand. Er wordt een nieuw bestand gemaakt als het bestand niet bestaat.
een + Opent het bestand voor lezen en schrijven. Dit opent het bestand in de append-modus om te schrijven. De gegevens worden aan het einde van het bestand ingevoegd. Er wordt een nieuw bestand gemaakt als het bestand niet bestaat.
t Opent het bestand in tekstmodus.

Hoe een bestand te openen

Om een ​​bestand in Python te openen, gebruik je de ingebouwde open() functie. De functie open() heeft twee argumenten als invoer, namelijk de naam van het bestand en de werkingsmodus. Deze functie retourneert het bestandsobject als uitvoer. Het is niet nodig om een ​​module te importeren om de functie open() te gebruiken. Het volgende is de syntaxis van de functie open():

file_object= open(bestandsnaam,modus)

Hier vertegenwoordigt 'bestandsnaam' de naam van het eigenlijke tekstbestand, terwijl 'modus' de bestandstoegang of bestandsbewerkingsmodus vertegenwoordigt. U kunt ook r voor 'bestandsnaam' plaatsen als de bestandsnaam speciale tekens bevat. De r wordt als volgt geplaatst:



=file_object= open(rfile_name,modus)

De bestandsnaam kan bijvoorbeeld zijn: F: ieuwemapmijnbestand.txt

Hoe maak je een bestand aan

De functie open() kan worden gebruikt om bestanden in Python te maken. Gebruik de toevoegmodus (a) in de functie open() om het bestand te maken. Maak een bestand met de onderstaande code:

het dossier = open('voorbeeld.txt','tot')

Hier wordt een nieuw bestandsobject gemaakt. Het bestandsobject heet bestand. De naam van het nieuw gemaakte tekstbestand is sample.txt. Het tekstbestand wordt geopend in de toevoegmodus. Het zal het nieuwe bestand maken als het bestand nog niet bestaat. Nadat u het bestand hebt gemaakt, moet u het bestand op de volgende manier sluiten:

het dossier.dichtbij()

De ingebouwde functie close() wordt gebruikt om het bestand te sluiten.

Gegevens naar een bestand schrijven

Er zijn twee functies in Python die worden gebruikt voor het schrijven van gegevens in een bestand:

  1. schrijven()
  2. schrijflijnen()

De functie write() wordt gebruikt om gegevens van één regel of enkele tekenreeks naar een bestand te schrijven, terwijl de functie writelines() wordt gebruikt om meerdere gegevensregels naar een tekstbestand te schrijven. Laten we enkele voorbeelden bekijken van het schrijven van gegevens naar een bestand.

De functie write() gebruiken

In dit voorbeeld gebruiken we de functie write() om gegevens naar een bestand te schrijven. Het bestand wordt geopend in de schrijfmodus. wordt geplaatst om het einde van de regel aan te geven.

# een nieuw bestandsobject maken en een bestand openen in de schrijfmodus
het dossier=open('voorbeeld.txt','in')
# enkele regel naar een bestand schrijven

het dossier.schrijven('Welkom bij de linuxhint'N')
# nog een enkele regel naar een bestand schrijven
het dossier.schrijven('Welkom terug')

#het bestand sluiten
het dossier.dichtbij()

Uitgang:

De regels zijn in de tekstbestanden geschreven.

Als we het bestand in de schrijfmodus openen en de functie write() vragen om meer regels naar het bestand te schrijven, overschrijft het de vorige gegevens en worden er nieuwe gegevens aan het tekstbestand toegevoegd.

# een nieuw bestandsobject maken en een bestand openen in de schrijfmodus
het dossier=open('voorbeeld.txt','in')
# enkele regel naar een bestand schrijven

het dossier.schrijven('Dag iedereenN')
# nog een enkele regel naar een bestand schrijven
het dossier.schrijven('Dit is de vervangen string')

#het bestand sluiten
het dossier.dichtbij()

Uitgang:

In de uitvoer is te zien dat de vorige gegevens worden vervangen en nieuwe gegevens op hun plaats in het tekstbestand worden toegevoegd.

Als we zowel de vorige als de nieuwe gegevens in het bestand willen behouden, dan kunnen we het bestand in de toevoegmodus openen, zoals dit:

# een nieuw bestandsobject maken en een bestand openen in de toevoegmodus
het dossier=open('voorbeeld.txt','tot')
# enkele regel naar een bestand schrijven

het dossier.schrijven('Dag iedereenN')
# nog een enkele regel naar een bestand schrijven
het dossier.schrijven('Dit is de vervangen string'N')
# nog een nieuwe enkele regel naar een bestand schrijven
het dossier.schrijven('Dit is de nieuw toegevoegde tekenreeks'N')
#het bestand sluiten
het dossier.dichtbij()

Uitgang:

De functie writelines() gebruiken

De functie writelines() wordt gebruikt om meerdere regels in een tekst tegelijk te schrijven, als volgt:

# een nieuw bestandsobject maken en een bestand openen in de schrijfmodus
het dossier=open('bestand1.txt','in')
# meerdere tekenreeksgegevens opslaan in een variabele
P = ['Dag iedereenN','Welkom bij de linuxhint'N','we gebruiken de functie schrijflijnen'N']
# schrijflijnen-functies gebruiken om gegevens in een bestand te schrijven
het dossier.schrijflijnen(P)
#het bestand sluiten
het dossier.dichtbij()

Uitgang:

Een bestand lezen

Om een ​​bestand in Python te lezen, opent u het bestand eerst in de leesmodus. Er zijn drie ingebouwde functies in Python voor het lezen van een bestand. Deze omvatten het volgende:

  1. lezen()
  2. Lees regel()
  3. leesregels()

lezen(): Gebruikt om de gegevens uit een bestand te lezen; retourneert de volledige gegevens in de vorm van een tekenreeks.

Lees regel(): Leest een regel met gegevens uit een bestand; geeft alleen de eerste regel terug.

leesregels(): Leest alle bestaande regels uit een bestand; geeft het terug in de vorm van een lijst.

De functie seek() wordt gebruikt om de positie van de bestandshandle te wijzigen. Bij het lezen van gegevens in het bestand positioneert de bestandshandle zich aan het einde van het bestand. Een bestandshandle is dus als een cursor, met de functie seek() als middel om de cursor te verplaatsen.

Laten we een voorbeeld bekijken van het lezen van gegevens uit het bestand.

# een bestand openen in leesmodus
het dossier=open('bestand1.txt','R')
# gebruik de functie read() om de gegevens uit het bestand te lezen
# de regels in een variabele opslaan
gegevens=het dossier.lezen()
# de gegevens afdrukken
afdrukken('Dit is de uitvoer van de functie read():N')
afdrukken(gegevens)

# gebruik de functie seek() om de bestandspositie in start te brengen
het dossier.zoeken(0)
# gebruik de functie readline() om de gegevens uit het bestand te lezen
# de regels in een variabele opslaan
gegevens=het dossier.Lees regel()
# de gegevens afdrukken
afdrukken('Dit is de uitvoer van de functie readline():N')
afdrukken(gegevens)

# gebruik de functie seek() om de bestandspositie in start te brengen
het dossier.zoeken(0)
# gebruik de functie readlines() om de gegevens uit het bestand te lezen
# de regels in een variabele opslaan
gegevens=het dossier.leesregels()
# de gegevens afdrukken
afdrukken('Dit is de uitvoer van de functie readlines():N')
afdrukken(gegevens)
#het bestand sluiten
het dossier.dichtbij()

Uitgang:

Conclusie

Vaak is het nodig om informatie of gegevens op te slaan in een bestand. In Python kun je eenvoudig bestanden maken, schrijven en lezen met behulp van de ingebouwde functies van Python. Het is niet nodig om andere modules in uw programma te importeren als u bestanden wilt lezen, schrijven en maken. U kunt ook meerdere ingebouwde toegangsmodi gebruiken terwijl u de bestanden gebruikt. In dit artikel hebben we met enkele eenvoudige voorbeelden uitgelegd hoe u bestanden in Python kunt lezen en schrijven.