Het afhandelen van binaire bestanden lijkt veel op het afhandelen van
tekstbestanden. Je moet het bestand openen met open()
om de inhoud te
kunnen benaderen, je sluit het af met close()
als je klaar bent, en je
kunt lezen en schrijven met respectievelijk read()
en write()
.
Als je een binair bestand opent, moet je aan Python aangeven dat je dit
bestand wilt behandelen in “binaire modus.” Je doet dit door de letter
"b"
aan het modus argument toe te voegen. Bijvoorbeeld, om een bestand
te openen in “binair lezen” modus, gebruik je "rb"
als modus. Je kunt
ook een binair bestand openen voor zowel lezen als schrijven; dat geef
je aan met de modus "r+"
, dus lezen en schrijven in binaire modus is
"r+b"
(hoewel je eventueel ook een tekstbestand kunt openen in lezen
plus schrijven modus, via "r+"
, gaf ik dat niet aan in hoofdstuk
171,
omdat dat zelden zinvol is). Net als bij tekstbestanden, kun je een
binair bestand openen in “alleen schrijven” modus met "wb"
; het
bestand wordt dan leeggemaakt. "w+b"
opent een bestand voor zowel
lezen als schrijven, maar maakt in tegenstelling tot "r+b"
het bestand
ook leeg om mee te beginnen.
Als je een bestand opent voor zowel lezen als schrijven, en de pointer staat niet aan het einde van het bestand als je begint met schrijven, dan ben je data aan het overschrijven.
Je kunt ieder bestand openen in binaire modus, ook al is het een tekstbestand. Als je echter een tekstbestand opent in binaire modus, dan behandel je het bestand ook als een binair bestand, wat inhoudt dat Python geen automatische conversie van “newline” tekens doet.
Het sluiten van een binair bestand verschilt niet van het sluiten van een tekstbestand.
fp = open( "pc_rose.txt", "rb" )
fp.close()
Opmerking
De code hierboven geeft geen uitvoer – als hij wel uitvoer geeft, dan betreft het een runtime error, die hoogstwaarschijnlijk inhoudt dat “pc_rose.txt” niet beschikbaar is.