Ich habe eine Klasse geschrieben, die das Header-Segment der Datendatei analysiert (um wissenschaftliche Gerätedaten zu speichern) und Dinge wie Offsets zu verschiedenen Datensegmenten innerhalb der Datei sammelt. Die tatsächlichen Daten werden durch verschiedene Verfahren erhalten, die die Datensegmente lesen und parsen.Puffer/Stream zum Lesen einer Teilmenge einer Datei in Python?
Das Problem, auf das ich gestoßen bin, ist, dass ein Segment für anbieterspezifische, unstrukturierte Daten definiert ist. Da es nichts zu analysieren gibt, brauche ich nur meine Methode, um rohe Binärdaten zurückzugeben. Allerdings könnte dieses Segment sehr groß sein, also möchte ich nicht nur alles auf einmal lesen und ein einziges bytes
Objekt zurückgeben.
Was ich tun möchte, ist die Methode ein io.BufferedReader
Objekt oder ähnliches in die Datei zurückgeben, die nur zwischen einem Anfang und Ende Offset liest. Ich war nicht in der Lage, einen Weg zu finden, dies mit den eingebauten IO-Klassen zu tun. Ist es möglich?
Diese Frage bezieht sich mehr auf die API - Ich möchte die Methode, um einen Stream zurückgeben, die nur aus diesem Segment der Datei liest, ohne dass der Anrufer sich sorgen muss, was die tatsächlichen Offsets sind. – JaredL
Angenommen, der Header ist dynamisch im Aufbau? wenn ja, muss ich mit dem Scannen gehen, um den Startpunkt zu bestimmen. Es gibt keinen magischen API-Aufruf auf dem io-Modul oder seinen Klassen, der automatisch weiß, wo bei jeder gegebenen Datei zu beginnen ist, wenn der Startpunkt von einer bestimmten Kopfzeilenlänge abhängt. –
Vielleicht habe ich die Frage nicht klar formuliert. Ich habe die Datei bereits analysiert und weiß, wo die Offsets sind. Ich möchte, dass dies für jeden anderen Code, der das Modul verwendet, vollkommen transparent ist, so dass es einfach nach einem Stream für das Datensegment fragen kann, ohne etwas über das Dateiformat oder die Interna zu wissen. – JaredL