ich habe eine Klasse die immer mal wieder eine Datei öffnen muss, um Stück für Stück bestimmte Inhalte auszulesen.
Meine aktuelle Implementierung hat ein Attribut self.file_stream.
Dieses Attribut wird, wenn der Anwender bestimmte Methoden der Klasse aufruft um Inhalte aus der Datei zu lesen.
Mein Problem:
Aktuell bedeutet dies, dass ich die Datei immer offen habe.
Ich wollte eigentlich nach jedem Lesevorgang die Datei, den Stream wieder öffnen und danach schliessen.
Daher Frage ich mich ob man self.file_stream wieder öffnen kann, ohne io.open(file_path,'rb) zu verwenden.
Also folgender MAßen:
Das steht im Konstruktor der Klasse, hier werden quasi die grundlegenden Inhalte aus dem Stream gelesen und dann wieder geschlossen:
Code: Alles auswählen
with io.open(mdf_file,'rb') as self.mdfstream:
self.IDBLOCK_START_BYTE_POS=STARTPOSIDBLOCK
self.HDBLOCK_START_BYTE_POS=STARTPOSHDBLOCK
self.IDBLOCK=self.__read_IDBLOCK(self.IDBLOCK_START_BYTE_POS)
self.HDBLOCK=self.__read_HDBLOCK(self.HDBLOCK_START_BYTE_POS)
self.DGBLOCKS=self.__read_DGBLOCK(self.HDBLOCK.pointer_2_first_DGBLOCK)
Code: Alles auswählen
...
if self.mdfstream.closed=True:
REOPEN STREAM --> geht das
cc_block=self.__read_CCBLOCK(cn_block.pointer_2_conversion_formular)
...
Gruß
Marcus