Python bestandsbeheersing meesteren: maken, lezen, schrijven en openen van tekstbestanden
Python Bestandsbeheersing
In Python is er geen noodzaak voor het importeren van externe bibliotheken om bestanden te lezen en schrijven. Python biedt een ingebouwde functie voor het maken, schrijven en lezen van bestanden.
In deze tutorial over bestandsbeheersing in Python leren we:
- Hoe een tekstbestand in Python te openen
- Hoe een tekstbestand in Python te maken
- Hoe een tekstbestand in Python aan te vullen
- Hoe bestanden in Python te lezen
- Hoe een bestand regel voor regel in Python te lezen
- Bestandsmodi in Python
Hoe een tekstbestand in Python te openen
Om een bestand te openen, moet je de ingebouwde open functie gebruiken. De Python open-bestandsfunctie retourneert een bestandsobject dat methoden en attributen bevat om verschillende operaties voor het openen van bestanden in Python uit te voeren.
Syntax van Python open-bestandsfunctie
file_object = open("bestandsnaam", "modus")
Hierbij,
- bestandsnaam: geeft de naam van het bestand dat het bestandsobject heeft geopend.
- modus: attribuut van een bestandsobject vertelt je in welke modus een bestand is geopend.
Meer details over deze modi worden hieronder uitgelegd
Hoe een tekstbestand in Python te maken
Met schrijven naar bestand in Python, kun je een .txt-bestand (guru99.txt) maken met de code die we hier demonstreren:
Stap 1) Open het .txt-bestand
f = open("guru99.txt", "w+")
- We declareerden de variabele "f" om een bestand genaamd guru99.txt te openen. Open neemt 2 argumenten: het bestand dat we willen openen en een string die het type toestemming of operatie vertegenwoordigt die we op het bestand willen uitvoeren
- Hier gebruikten we de letter "w" in ons argument, wat schrijven naar bestand in Python aangeeft en het bestand aanmaakt als het niet bestaat in de bibliotheek
- Plus-teken geeft zowel lezen als schrijven aan voor Python bestandscreatie.
Stap 2) Data in het bestand invoeren
for i in range(10):
f.write("Dit is regel %d\r\n" % (i+1))
- We hebben een for-lus die loopt over een range van 10 getallen.
- Gebruik de write functie om data in het bestand te schrijven.
- De output die we in het bestand willen itereren is "dit is regel nummer", wat we declareren met Python write-bestandsfunctie en dan procent d (toont integer)
- Eigenlijk zetten we het regelnummer dat we schrijven, dan een carriage return en newline-karakter
Stap 3) Sluit het bestandsinstantie
f.close()
- Dit sluit de instantie van het bestand guru99.txt opgeslagen
Hier is het resultaat na code-uitvoering voor het maken van een tekstbestand in Python voorbeeld:
Wanneer je klikt op je tekstbestand in ons geval "guru99.txt" zal het er ongeveer zo uitzien
Hoe een tekstbestand in Python aan te vullen
Je kunt ook nieuwe tekst toevoegen aan een al bestaand bestand of een nieuw bestand.
Stap 1)
f = open("guru99.txt", "a+")
Opnieuw, als je een plus-teken in de code ziet, geeft dit aan dat het een nieuw bestand aanmaakt als het niet bestaat. Maar in ons geval hebben we al het bestand, dus we hoeven geen nieuw bestand te maken voor Python append-bestandsoperatie.
Stap 2)
for i in range(2):
f.write("Toegevoegde regel %d\r\n" % (i+1))
Dit schrijft data in het bestand in append-modus.
Je kunt de output in "guru99.txt" bestand zien. De output van de code is dat het eerdere bestand aangevuld is met nieuwe data door Python append-bestandsoperatie.
Hoe bestanden in Python te lezen
Je kunt een bestand in Python lezen door het .txt-bestand aan te roepen in "lees-modus" (r).
Stap 1) Open het bestand in leesmodus
f = open("guru99.txt", "r")
Stap 2) We gebruiken de mode-functie in de code om te controleren of het bestand in open-modus is. Zo ja, gaan we verder
if f.mode == 'r':
Stap 3) Gebruik f.read om bestandsdata te lezen en op te slaan in variabele content voor het lezen van bestanden in Python
contents = f.read()
Stap 4) Print contents voor Python lees tekstbestand
Hier is de output van het lees-bestand Python voorbeeld:
Hoe een bestand regel voor regel in Python te lezen
Je kunt je .txt-bestand ook regel voor regel lezen als je data te groot is om te lezen. readlines() code scheidt je data in een makkelijk leesbare modus.
Wanneer je de code (f1 = f.readlines()) draait om het bestand regel voor regel te lezen in Python, scheidt het elke regel en presenteert het bestand in een leesbaar formaat. In ons geval is de regel kort en leesbaar, de output zal eruitzien zoals de leesmodus. Maar als er een complex data-bestand is dat niet leesbaar is, kan dit stuk code nuttig zijn.
Bestandsmodi in Python
Hieronder de diverse Bestandsmodi in Python:
| Modus | Beschrijving |
|---|---|
| 'r' | Dit is de standaardmodus. Opent bestand voor lezen. |
| 'w' | Deze modus opent bestand voor schrijven. Als bestand niet bestaat, wordt een nieuw bestand aangemaakt. Als bestand bestaat, wordt het getruncateerd. |
| 'x' | Maakt een nieuw bestand aan. Als bestand al bestaat, faalt de operatie. |
| 'a' | Opent bestand in append-modus. Als bestand niet bestaat, wordt een nieuw bestand aangemaakt. |
| 't' | Dit is de standaardmodus. Opent in tekstmodus. |
| 'b' | Deze opent in binaire modus. |
| '+' | Dit opent een bestand voor lezen en schrijven (updaten) |
Hier is de complete code voor Python print() naar Bestand Voorbeeld
Python 2 Voorbeeld
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# Open het bestand terug en lees de inhoud
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print contents
# of, readlines leest de individuele regel in een lijst
# fl = f.readlines()
# for x in fl:
# print x
if __name__ == "__main__":
main()
Python 3 Voorbeeld
Hieronder een ander Python print() naar Bestand Voorbeeld:
def main():
f = open("guru99.txt","w+")
# f = open("guru99.txt","a+")
for i in range(10):
f.write("This is line %d\r\n" % (i+1))
f.close()
# Open het bestand terug en lees de inhoud
# f = open("guru99.txt", "r")
# if f.mode == 'r':
# contents = f.read()
# print(contents)
# of, readlines leest de individuele regel in een lijst
# fl = f.readlines()
# for x in fl:
# print(x)
if __name__ == "__main__":
main()
Samenvatting
- Python stelt je in staat om bestanden te lezen, schrijven en verwijderen
- Gebruik de functie open("bestandsnaam","w+") voor Python tekstbestand maken. De + vertelt de Python-interpreter voor Python tekstbestand openen met lees- en schrijfrechten.
- Om data toe te voegen aan een bestaand bestand of Python print naar bestand operatie, gebruik het commando open("Bestandsnaam", "a")
- Gebruik de Python lees-van-bestand functie om de GEHELE inhoud van een bestand te lezen
- Gebruik de readlines functie om de inhoud van het bestand één voor één te lezen.
Python
- C Bestandsbehandeling: I/O onder de knie krijgen met fopen, fprintf, fread en fseek
- FPGA Block RAM initialiseren vanuit tekstbestanden met VHDL's TEXTIO-bibliotheek
- Aan de slag met Python: Installeren, uitvoeren en je eerste programma schrijven
- Python-bestands-I/O: bestandsbewerkingen, lezen, schrijven en beheer beheersen
- Python print()-functie: Praktische handleiding met voorbeelden
- Bestands- en directory-bestaat controleren in Python – Een praktische gids
- Python JSON: Encoding, Decoding en Bestandsafhandeling – Een Praktische Gids
- Gemiddeldes Berekenen in Python: Een Praktische Gids
- Python Bestands I/O: In- en uitvoerbewerkingen onder de knie krijgen
- Python uitzonderingsafhandeling meesteren: Een uitgebreide gids
- Bestanden Lezen in Java met BufferedReader – Een Praktische Gids met Voorbeelden