Laten we het over bestanden hebben. Oh, wat bedoel ik, je zult dit veel zien in programmeren.
IO staat voor input-output.
Zie je, machines communiceren meestal niet in slechts één omgeving, bijvoorbeeld, tot nu toe hebben we onze code
geschreven in, laten we zeggen, een editor zoals sublieme tekst die ik hier heb of PAE Charm
of een online Reppel.
Maar meestal wil je communiceren met verschillende delen van het systeem.
Misschien wil je een andere website spreken.
Misschien wil je praten met iets dat op je bureaublad staat, misschien een bestand, misschien communiceren twee verschillende
machines met elkaar.
Misschien praat je tegen een database.
Ik bedoel gewoon, hé, ik wil dat je iets van de buitenwereld invoert en iets naar de buitenwereld
stuurt.
En een van de meest voorkomende manieren waarop we dingen als IO gebruiken, is door bestanden te lezen, je zou aan Python
kunnen denken en hoe zou het niet leuk zijn als we misschien een script kunnen schrijven dat afbeeldingen comprimeert terwijl
we IO nodig hebben, dan moet ik voer een afbeelding in en dan moet ik de gecomprimeerde versie bijwerken.
Afbeelding.
Misschien wil ik met een PDF-bestand werken en misschien een watermerk toevoegen aan al mijn PDF-pagina's.
Welnu, dan voeren we een PDF in en voeren we een nieuwe versie van een PDF uit.
Dit is dus een veel voorkomende taak die we veel zien.
En het lezen en schrijven van bestanden is een zeer belangrijk hulpmiddel in onze gereedschapsriem.
En tussen haakjes, we hebben een project in de maak waar we dit ook echt met PDF gaan gebruiken.
Maar voor nu, hoe kunnen we deze bestandsinvoer uitvoeren met Python?
Welnu, Python heeft een ingebouwde functie waarmee we bestanden kunnen openen en ernaar kunnen schrijven.
En het heet gewoon open, leuk en gemakkelijk, dus als we open gebruiken, kunnen we zoiets als dit doen, ik
kan een voorbeeldtekstbestand maken op ons bureaublad, dus ik ga mijn terminal hier gebruiken.
Dus als we naar de huidige werkdirectory kijken, ik ben op een desktop, als je op Windows werkt, dan moet
je hier misschien een aantal andere commando's uitvoeren.
Maar inmiddels zou je er redelijk bekend mee moeten zijn dat je een bestand kunt maken als je dat zou willen.
Nu kan ik dit handmatig of in mijn terminal doen.
Ik kan het eigenlijk wel.
Als je een Mac hebt, kun je gewoon aanraken en dan zeg ik testpunttekst.
Dus als ik het hier anders doe, zie je dat ik eerder een testtekstbestand en een script heb.
En nogmaals, gewoon om te controleren of ik naar mijn bureaublad ga.
Ja, ik heb deze twee hier, perfect nu hier, kunnen we eenvoudig zeggen in ons scriptbestand.
Open.
En de naam van het bestand in ons geval, het is test heartstring-test, punttekst zomaar.
Nu kan ik dit aan een variabele toewijzen en het mijn bestand noemen.
En nu hebben we, nou ja, het bestandsobject, dus laten we dit eens bekijken als ik dat hier doe, mijn bestand afdrukken.
Laten we afwachten wat er gebeurt.
Ik ga mijn code uitvoeren.
Dus laten we zeggen Python drie en dan script uitvoeren.
Oke.
Ik krijg een object, een textielomslag, ik krijg de naam, dat is tekst Ik word gemaaid, waarvan ik nog niet zeker weet wat
het is, we zullen leren en dan coderen, zo is dit bestand gecodeerd, wat is UTF acht.
De meeste bestanden zijn meestal gecodeerd in UTF acht.
Oké, dus hoe kan ik dit bestand eigenlijk lezen?
Het enige wat we hoeven te doen is dat mijn bestand een punt heeft.
Lees de methode erop zodat als ik dit nu uitvoer.
Nou, ik krijg een leeg stuk ruimte omdat er niets op deze testtekst staat, dus laten we iets schrijven.
Ik open dit bestand en sublieme tekst en schrijf gewoon: Hallo, mijn naam is Andre Agassi.
Ik ben hier echt heel creatief mee geworden.
Goed gedaan.
Goed, laten we teruggaan.
Dus als ik nu dit bestand lees.
Kijk eens aan, ik kan lezen hoi, mijn naam is Andre, en daar ga je.
Ik heb mijn dossier gelezen.
Leuk en gemakkelijk.
Als ik dit nog een keer doe, laten we het dan gewoon doen.
Lees dit meerdere keren.
Als ik klik, ren dan weg.
Ik kan de eerste keer lezen, maar deze twee keer lees ik niets.
Waarom is dat?
Welnu, deze open functie heeft het idee van een curser.
Dat wil zeggen, u kunt het bestand maar één keer lezen.
En zodra u het opent, retourneert het een bestandsobject.
En de inhoud van het bestand dat u kunt lezen en de inhoud van het bestand wordt gelezen met een cursor
zoals u hier één voor één ziet en afgedrukt op het scherm.
Maar aan het einde van deze eerste lezing zal de cursor aan het einde van het bestand staan.
Dus als het nu probeert te lezen, is het einde van het bestand en blijft er niets achter.
Dus de manier waarop we dit omzeilen is door zoiets te doen.
We zeggen gewoon mijn bestand dot seke, dat onze cursor verplaatst naar de index die we in ons geval willen, zoek nul.
Dus als ik dit nu doe, ga je gang.
En als ik de cursor terug beweeg.
En ik sla dit op en voer het uit.
Goed, dat is nu een stuk beter.
En dit is alleen maar om aan te tonen dat Python dit idee van een cursor gebruikt om een bestand te lezen.
Een ander uniek ding dat ik kan doen, is een leesregel doen.
Zodat als ik dit uitvoer.
Het leest de regel, maar laten we zeggen dat ons tekstbestand verschillende regels heeft, dus hoe gaat het met u?
Laten we zeggen een smiley hier, als ik nu de regel lees.
Ik krijg hallo, mijn naam is Andre, als ik de regel opnieuw lees, hallo, mijn naam is Andre omdat ik elke regel krijg.
Ik krijg alleen de eerste regel als ik deze meerdere keren print.
En ik voer dit uit.
Oké, dat snap ik beter.
Hallo, mijn naam is Andre Smiley Face.
Hoe gaat het met je?
Nogmaals, de cursor blijft bewegen, dus ik kan gewoon de regels blijven lezen.
Een ander ding dat ik kan doen, is gewoon leesregels zeggen als ik dit uitvoer.
Ik krijg een lijst met het hele bestand, leest alle regels, en je ziet hier dat ik hallo heb, mijn
naam is Andre Nagui.
Ik heb hier een nieuwe regel, een smiley, een nieuwe regel.
Onthoud dat dit ontsnappingssequencing is.
En hoe gaat het dan met jou?
En geen nieuwe regel hier omdat er geen nieuwe regel is.
Het is het einde van het bestand.
Dus deze zijn buitengewoon handig, misschien kunnen we reguliere expressies gebruiken om naar een stuk tekst in een bestand te zoeken dat
best handig is, toch?
Nu, het allerlaatste wat we moeten doen, en dit is een beetje vervelend, dus ik zal je laten zien hoe we het in de
toekomst niet hoeven te doen.
Maar je moet het bestand eigenlijk handmatig sluiten nadat je het met open hebt geopend.
Dus je kunt het ergens anders gebruiken en het programma is gewoon een goede standaard, dus wat je moet doen
is zeggen dat mijn bestand punt sluit als je klaar bent.
Zeg tegen je computer, hé.
Je moet stoppen met wat je ook doet, ik heb geen interesse meer in de herfst, we zijn er klaar mee.
Je kunt het ergens anders gebruiken.
Dus meestal doen we zoiets en zijn we allemaal klaar.
Laten we een pauze nemen en wat meer leren in de volgende video.