Reactie plaatsen 
 
Waardering:
  • 0 stemmen - gemiddelde waardering is 0
  • 1
  • 2
  • 3
  • 4
  • 5
Bestanden
Auteur Bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #1
Bestanden
Inhoudsopgave

Inleiding
Benodigdheden
De Open() Functie
Gegevens opslaan
Gegevens lezen
Gegevens lezen en schrijven
Tot slot

Inleiding
Als je een beetje kunt programmeren in Python, al eens een leuke GUI hebt gemaakt en een paar eigen functies hebt gemaakt, zal je graag gegevens die je genereerd willen opslaan voor later gebruik. Voor kleine dingen, zoals de lacatie van je programma en dergelijke, kun je het register gebruiken, maar voor grote teksten is dat niet raadzaam, want dat zal de computer waarop je programma gebruikt wordt aanzienlijk vertragen.

Daarom kun je voor grote gegevens het beste gewoon bestandjes gebruiken, waar je je gegevens in opslaat, en er bij later gebruik weer uithaalt. In deze tutorial zal ik deze dingen behandelen:

* Het optimaal opslaan van gegevens in een bestand.
* Het voor verder gebruik openen van bestanden.
* Handige functies om bestanden te openen, denk hierbij aan bestanden regel voor regel inlezen, verschillende manieren van bestanden openen enzovoort.


Benodigdheden
Om deze tutorial te kunnen volgen heb je nodig:
* Een of andere Python IDE.
* De standaard libs van Python geinstalleerd

De twee bovengenoemde dingen kun je downloaden op:
http://www.python.org/download/

Verder heb je basiskennis van Python nodig, zoals Stringbewerking en dergelijke.

De Open() functie
De open() functie is d� manier in Python om bestanden mee te openen. De syntaxis van deze functie is:
open(bestandsnaam, openmodus).
Bestandsnaam is het pad naar het bestand dat je wilt openen.
Openmodus is de manier waarop je het bestand wilt openen. Je hebt de volgende keuzes:
  • r : Met deze modus wordt het bestand geopend om alleen te lezen
  • w : Met deze modus open je het bestand voor alleen schrijven.
  • a : Met deze modus wordt alles dat je toevoegd, automatisch aan het einde van het geopende bestand toegevoegd
  • r : Opent het bestand voor zowel lezen �n schrijven
Als je geen modus meegeeft, is de standaard modus 'r'. Onder Windows en Mac kun je bestanden ook in de binaire modus openen. Je kunt dan dus ook de volgende moda gebruiken:
  • rb : Met deze modus wordt het bestand geopend om alleen te lezen in binaire modus
  • wb : Met deze modus open je het bestand voor alleen schrijven in binaire modus
  • ab : Met deze modus wordt alles dat je toevoegd, automatisch aan het einde van het geopende bestand toegevoegd (binaire modus!)
  • r b : Opent het bestand voor zowel lezen �n schrijven, maar dan in Binaire modus.
De Binaire modus moet gebruikt worden bij .exe's en andere niet-plain-tekst.

Opslaan

Het eerste dat je met gegevens moet doen, is natuurlijk ergens opslaan. Als je gegevens wilt opslaan in een nog niet bestaand bestand, gebruik je dit:
PHP-code:
#Comment
gegevens=jegegevens
bestand
=open(bestandsnaam'w')
bestand.write(gegevens

De eerste regel zorgt ervoor dat je gegevens in de string gegevens terecht komen.
De tweede regel zorgt ervoor dat het bestand aangemaakt wordt, en dat de waarde ervan in 'bestand' geladen wordt. Aangezien het bestand net is aangemaakt, zal 'bestand' dus leeg zijn.
De derde regel zorgt ervoor dat 'gegevens' naar het bestand gechreven worden.

Als je eenmaal iets naar een bestand geschreven hebt, kun je daarna het beste de 'a' modus gebruiken, om de gegevens achter de al ingevoerde gegevens te zetten.

Lezen

Om bestanden te lezen, gebruik je de volgende code:
PHP-code:
#Comment
bestand=open(bestandsnaam'r')
bestand.read() 

De eerste regel zorgt ervoor dat de waarde van bestandsnaam in bestand wordt gezet.
bestand.read() leest het hele bestand in, en geeft dat terug.
Je kunt het ook in een string zetten, bijvoorbeeld:
PHP-code:
#Comment
file bestand.read() 

Je kunt het bestand ook regel voor regel inlezen, dat gaat zo:
PHP-code:
#Comment
bestand=open(bestandsnaam'r')
while 
not regel == "":
    
regel bestand.readline()
    
#Hier de code die je wilt doen met de regel 
De eerste regel leest het bestand in in bestand.
De volgende regel zorgt ervoor dat hij blijft loopen totdat de regel leeg is ("").
De regel daarna zorgt dat de volgende regel ingelezen wordt en in regel gestopt wordt.
Daarna kun je iets met die regel gaan doen.


Lezen en schrijven
Natuurlijk kun je voor lezen en schrijven eerst het bestand inlezen met de modus 'r' en daarna opnieuw openen met 'w', maar het is handiger om met de 'r ' modus te werken.
Met 'r ' kun je gewoon de read() en write() functies door elkaar gebruiken.

Tot slot
Ik weet dat in deze tutorial niet alles staat over het werken met bestanden, maar het is bedoelt als basis om te leren werken met bestanden. Als je de methoden die hier beschreven staan goed beheerst, is het erg makkelijk andere dingen te leren mbt bestanden in Python.

Ik heb veel gehad aan dit goede artikel:
http://www.coolpython.nl/tutorials/tut/n...0000000000

Daar kun je ook meer informatie vinden over Bestanden in Python!

He's back
(Dit bericht is het laatst bewerkt op 21-05-2006 om 12:37:06 door Twist.)
20-05-2006 09:36:09
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Kevin Offline
Sunnyblizard
*****

Berichten: 1.297
Lid sinds: 04-2006
Reputatie: 12
Bericht: #2
RE: [Python] Bestanden
Alweer een mooie Python tut! Ik denk dat dit ondertussen wel een eigen python forum verdient ;)

+++ iig! Goed werk ;)

What if God is the consciousness that is created when enough of us are connected to the internet.
20-05-2006 09:59:10
Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Elco Offline
Ep2 Volunteer
****

Berichten: 1.237
Lid sinds: 04-2006
Reputatie: 29
Bericht: #3
RE: [Python] Bestanden
Alweer een Python-tut om in te lijsten! :D

Knap werk Twist! +++
20-05-2006 10:48:20
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #4
RE: [Python] Bestanden
Bedankt allebei ;).

He's back
20-05-2006 11:17:16
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Offline
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #5
RE: [Python] Bestanden
Sweet!!!!

Wil je een python forum?

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
20-05-2006 12:13:01
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #6
RE: [Python] Bestanden
Jasper schreef:Sweet!!!!

Wil je een python forum?

Tja zelf zou ik het natuurlijk erg leuk vinden ;), maar het is de vraag of er veel gebruik van gemaakt zal worden en da's natuurlijk het belangrijkste ;).
Als het aan mij lag, wou ik graag een Python forum, maar jij moet het maar beslissen ;).

He's back
20-05-2006 12:20:44
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Jasper Offline
Ep2 Admin
******

Berichten: 15.056
Lid sinds: 04-2006
Reputatie: 223
Bericht: #7
RE: [Python] Bestanden
Ik vind het wel netjes. Je hebt behoorlijk Python kennis en het zou toch zonde zijn dat weg te stoppen onder 'overig'.

Om de zeven minuten denkt de vrouw dat de man alleen maar aan seks denkt.
20-05-2006 12:22:24
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #8
RE: [Python] Bestanden
Jasper schreef:Ik vind het wel netjes. Je hebt behoorlijk Python kennis en het zou toch zonde zijn dat weg te stoppen onder 'overig'.

Anders maken we hem even aan en dan kijken we hoe het loopt?

He's back
20-05-2006 16:45:22
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
itsalwaysme Offline
Een koe voor DPC
*****

Berichten: 1.045
Lid sinds: 05-2006
Reputatie: 4
Bericht: #9
RE: Bestanden
op http://www.diveintopython.org/ staat ook veel info over Python. Is een heel handig e-book

crunch mee met de koeien
zie ook /5

It's hardware that makes a machine.It's software that makes it work (most of the time).
21-05-2006 18:10:37
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Twist Offline
Pytoloog
*****

Berichten: 1.381
Lid sinds: 04-2006
Reputatie: 2
Bericht: #10
RE: Bestanden
Bedankt voor de tip ;).

He's back
21-05-2006 19:14:16
De website van deze gebruiker bezoeken Alle berichten van deze gebruiker zoeken Reageren op dit bericht
Reactie plaatsen 


Ga naar locatie:


Contact opnemen | Ep2 | Naar boven | Naar inhoud | Archiefmodus | RSS-syndicatie