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 .
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 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 het 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. 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.
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:
jakhals versus wolf
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
# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1>=> open>('MyFile.txt', 'r')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r'D:TextMyFile2.txt', 'r>+>')> |
>
>
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
mijnkrekellive
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>('MyFile.txt', 'r')> file1.close()> |
>
>
Lezen uit een bestand
Er zijn drie manieren om gegevens uit een tekstbestand te lezen.
- read() : 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])>
- readline() : Leest een regel van het bestand en retourneert in de vorm van een string. 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])>
- readlines() : Leest alle regels en retourneert ze als elke regel een stringelement in een lijst.
File_object.readlines()>
Opmerking: ‘ ’ wordt behandeld als een speciaal teken van twee bytes.
Voorbeeld:
Python3
# Program to show various ways to> # read data from a file.> # Creating a file> file1>=> open>('myfile.txt', 'w')> L>=> ['This>is> Delhi
', 'This>is> Paris
', 'This>is> London
']> # Writing data to a file> 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>))> print>()> 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 ']>
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
# Program to show various ways to> # read data from a file.> L>=> ['This>is> Delhi
', 'This>is> Paris
', 'This>is> London
']> # Creating a file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello
')> >file1.writelines(L)> >file1.close()># to change file access modes> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading from a file> >print>(file1.read())> |
>
opnieuw bourne-shell
>
Uitgang:
Hello This is Delhi This is Paris This is London>
Opmerking: Meer weten over met verklaring Klik hier .