Liest eine Binärdatei mit Numpy fromfile und einem gegebenen Offset

8

Ich habe eine Binärdatei, die Aufzeichnungen über die Position eines Flugzeugs enthält. Jeder Datensatz sieht folgendermaßen aus:

%Vor%

Also ist jeder Datensatz 32 Bytes lang.

Ich möchte ein Numpy-Array erhalten.

Bei Offset 1859 gibt es einen vorzeichenlosen int 32 (4 Bytes), der die Anzahl der Elemente des Arrays angibt. 12019 in meinem Fall.

Es ist mir egal (vorerst) Kopfdaten (vor Offset 1859)

Array beginnt nur bei Offset 1863 (= 1859 + 4).

Ich habe meinen eigenen Numpy dtype wie

definiert %Vor%

Und ich lese Datei mit fromfile :

%Vor%

Aber ich sehe keinen Parameter, der fromfile zum Übergeben von Offset zur Verfügung stellt.

    
scls 08.05.2015, 12:46
quelle

2 Antworten

10

Sie können die Datei mit einer geöffneten Standard-Python-Datei öffnen und anschließend versuchen, die Kopfzeile zu überspringen. Anschließend übergeben Sie das Dateiobjekt an fromfile . Etwas wie das:

%Vor%     
reptilicus 08.05.2015, 14:50
quelle
2

Ich hatte ein ähnliches Problem, aber keine der obigen Antworten hat mich überzeugt. Ich musste etwas wie eine virtuelle Tabelle mit einer sehr großen Anzahl von binären Datensätzen implementieren, die möglicherweise mehr Speicher benötigten, als ich mir in einem einzigen Array leisten konnte. Meine Frage war also, wie man eine kleine Menge von Ganzzahlen von / zu einer Binärdatei liest und schreibt - eine Teilmenge einer Datei in eine Teilmenge von numpy array.

Dies ist eine Lösung, die für mich funktioniert hat:

%Vor%     
Eugene Veselov 20.07.2017 06:18
quelle

Tags und Links