In deze tutorial gaan we aan de slag met verschillende bestandsbewerkingen in Python. We zullen bespreken hoe je Python kunt gebruiken om een bestand te lezen, naar een bestand te schrijven, bestanden te verwijderen en nog veel meer. Dus zonder enige vertraging, laten we beginnen.
Werken met bestanden in Python
In de vorige tutorial gebruikten we de console om invoer te accepteren. Nu zullen we invoer accepteren met behulp van een bestand. Dat betekent dat we zullen lezen van en schrijven naar bestanden. Om dit te doen, moeten we enkele stappen volgen. Die zijn
- Open een bestand
- Neem invoer van dat bestand / Schrijf uitvoer naar dat bestand
- Sluit het bestand
We zullen ook enkele nuttige bewerkingen leren, zoals het kopiëren van een bestand en het verwijderen van een bestand.
Waarom zijn bestandsbewerkingen in Python nodig?
Werken met grote datasets in machine learning-problemen vereist het werken met bestanden als een basisbehoefte. Aangezien Python een veelgebruikte taal is voor datawetenschap, moet je bedreven zijn in de verschillende bestandsbewerkingen die Python biedt.
Dus laten we hier wat van de Python-bestandsbewerkingen verkennen.
1. Open een bestand in Python met de open() functie
De eerste stap om met bestanden te werken in Python is om te leren hoe je een bestand moet openen. Je kunt bestanden openen met de open()
-methode.
De open() functie in Python accepteert twee argumenten. De eerste is de bestandsnaam samen met het volledige pad, en de tweede is de bestandsmodus.
Hieronder heb ik enkele veelvoorkomende leesmodi voor bestanden vermeld:
- ‘r’ : Deze modus geeft aan dat het bestand alleen voor lezen wordt geopend
- ‘w’ : Deze modus geeft aan dat het bestand alleen voor schrijven wordt geopend. Als het bestand met die naam niet bestaat, wordt er een nieuw aangemaakt
- ‘a’ : Deze modus geeft aan dat de uitvoer van dat programma aan de vorige uitvoer van dat bestand zal worden toegevoegd
- ‘r+’ : Deze modus geeft aan dat het bestand wordt geopend voor zowel lezen als schrijven
Bovendien kun je voor het Windows-besturingssysteem ‘b’ toevoegen om toegang te krijgen tot het bestand in binair formaat. Dit komt doordat Windows onderscheid maakt tussen een binair tekstbestand en een regulier tekstbestand.
Stel dat we een tekstbestand met de naam ‘file.txt’ in dezelfde map plaatsen als onze code. Nu willen we dat bestand openen.
Echter, de functie open(filename, mode) retourneert een bestandsobject. Met dat bestandsobject kun je verder gaan met je verdere bewerkingen.
#directory: /home/imtiaz/code.py
text_file = open('file.txt','r')
#Een andere methode met volledige locatie
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)
print('Second Method')
print(text_file2)
De uitvoer van de volgende code zal zijn
================== RESTART: /home/imtiaz/code.py ==================
First Method
Second Method
>>>
2. Lezen en schrijven naar bestanden in Python
Python biedt verschillende methoden om naar bestanden te lezen en te schrijven, waarbij elke functie zich anders gedraagt. Een belangrijk punt om op te merken is de bestandsbedieningsmodus. Om een bestand te lezen, moet je het bestand openen in de lees- of schrijfmodus. Om echter naar een bestand te schrijven in Python, moet het bestand geopend zijn in de schrijfmodus.
Hier zijn enkele functies in Python waarmee je naar bestanden kunt lezen en schrijven:
- read() : Deze functie leest het hele bestand en retourneert een tekenreeks
- readline() : Deze functie leest regels uit dat bestand en retourneert deze als een tekenreeks. Het haalt regel n op, als het de nth keer is aangeroepen.
- readlines() : Deze functie retourneert een lijst waar elk element een enkele regel van dat bestand is.
- readlines() : Deze functie retourneert een lijst waar elk element een enkele regel van dat bestand is.
- write() : Deze functie schrijft een vaste reeks karakters naar een bestand.
- writelines() : Deze functie schrijft een lijst van strings naar een bestand.
- append() : Deze functie voegt een string toe aan het bestand in plaats van het bestand te overschrijven.
Laten we een voorbeeldbestand “abc.txt” nemen en individuele regels uit het bestand lezen met een for-lus:
#open het bestand
text_file = open('/Users/pankaj/abc.txt','r')
#krijg de lijst met regels
line_list = text_file.readlines();
#voor elke regel uit de lijst, print de regel
for line in line_list:
print(line)
text_file.close() #vergeet niet het bestand te sluiten
Output:
Nu we weten hoe we een bestand in Python kunnen lezen, laten we verder gaan en hier een schrijfoperatie uitvoeren met de functie writelines().
#open het bestand
text_file = open('/Users/pankaj/file.txt','w')
#initialiseer een lege lijst
word_list= []
#itereren 4 keer
for i in range (1, 5):
print("Please enter data: ")
line = input() #neem input
word_list.append(line) #toevoegen aan de lijst
text_file.writelines(word_list) #schrijf 4 woorden naar het bestand
text_file.close() #vergeet niet het bestand te sluiten
Output
3. Kopieer bestanden in Python met behulp van de shutil() methode
We kunnen de shutil module gebruiken om bestanden te kopiëren in Python. Met deze utility kunnen we kopieer- en verplaatsingsbewerkingen uitvoeren in Python op verschillende bestanden. Laten we hieraan werken met een voorbeeld:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
#een andere manier om bestanden te kopiëren
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
4. Verwijder bestanden in Python met de shutil.os.remove() methode
De shutil module van Python biedt de remove() methode om bestanden te verwijderen uit het bestandssysteem. Laten we eens kijken hoe we een verwijderingsbewerking kunnen uitvoeren in Python.
import shutil
import os
#twee manieren om bestand te verwijderen
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
5. Sluit een geopend bestand in Python met de close() methode
Wanneer je een bestand opent in Python, is het uiterst belangrijk om het bestand te sluiten nadat je wijzigingen hebt aangebracht. Dit bewaart alle wijzigingen die je eerder hebt aangebracht, verwijdert het bestand uit het geheugen en voorkomt verdere lees- of schrijfbewerkingen binnen het programma.
Syntaxis om een geopend bestand te sluiten in Python:
fileobject.close()
Als we verder gaan vanaf onze vorige voorbeelden waar we bestanden lazen, zo sluit je het bestand:
text_file = open('/Users/pankaj/abc.txt','r')
# enkele bestandsbewerkingen hier
text_file.close()
Bovendien kun je het sluiten van bestanden vermijden als je de with-block gebruikt. Zodra het with-block wordt uitgevoerd, worden de bestanden gesloten en zijn ze niet langer beschikbaar voor lezen en schrijven.
6. Python FileNotFoundError
Het is gebruikelijk om de FileNotFoundError te krijgen bij het werken met bestanden in Python. Dit kan eenvoudig worden vermeden door volledige bestandspaden op te geven bij het maken van het bestandsobject.
File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'
Om de FileNotFoundError op te lossen, hoef je alleen maar te controleren of het pad dat je hebt opgegeven voor de bestandsopeningsmethode correct is.
Conclusie
Dit zijn de bestandsbewerkingen in Python. Er zijn veel meer manieren waarop je bestanden kunt gebruiken binnen Python, waaronder het lezen van CSV-gegevens en meer. Hier is een artikel over hoe je de Pandas-module kunt gebruiken om CSV-datasets in Python te lezen.
I hope you enjoyed reading the article! Happy learning 🙂
**Referenties:
**
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy