2016-05-03 9 views
0

Ich habe eine Binärdatei mit einigen Zeichendaten in der Mitte einer Reihe von Ints und Floats stecken. Ich versuche mit numpy zu lesen. Die weitest ich in der Lage gewesen, in Bezug auf die Zeichendaten zu erhalten ist:lesen char Daten aus Binärdatei mit numpy

strbits = np.fromfile(infile,dtype='int8',count=73)

(Ja, es ist ein 73-stellige Zeichenfolge.)

Drei Fragen: Ist meine Daten gespeichert jetzt ohne Korruption oder Verkürzung in Strichen? Und, kann ich jetzt strbits in eine lesbare Zeichenfolge konvertieren? Soll ich das schließlich auf eine ganz andere Art und Weise tun?

UPDATE: Hier ist etwas, das funktioniert, aber ich würde denken, dass es einen eleganteren Weg geben würde.

strarr = np.zeros(73,dtype='c') 
for n in range(73): 
    strarr[n] = np.fromfile(infile,dtype='c',count=1)[0] 

So jetzt habe ich ein Array, wo jedes Element ein einzelnes Zeichen aus der Eingabedatei ist.

Antwort

2

Die Art, wie Sie es tun, ist in Ordnung. So können Sie es in eine Zeichenfolge konvertieren.

strbits = np.fromfile(infile, dtype=np.int8, count=73) 
a_string = ''.join([chr(item) for item in strbits]) 
+0

Vielen Dank! –