2013-11-25 14 views
10

Ich habe eine Datei mit einigen Metadaten und dann einige tatsächliche Daten, bestehend aus 2 Spalten mit Überschriften. Muss ich die beiden Datentypen trennen, bevor ich genomptxt in numpy benutze? Oder kann ich die Daten irgendwie teilen? Wie wäre es, wenn Sie den Dateizeiger direkt über den Headern an das Ende der Zeile setzen und dann von dort aus genfromtxt ausprobieren? Dank Das Format der Datei ist wie folgt:Lesen von Daten in numply Array von Textdatei

&SRS 
<MetaDataAtStart> 
multiple=True 
Wavelength (Angstrom)=0.97587 
mode=assessment 
background=True 
issid=py11n2g 
noisy=True 
</MetaDataAtStart> 
&END 
Two Theta(deg) Counts(sec^-1) 
10.0 41.0 
10.1 39.0 
10.2 38.0 
10.3 38.0 
10.4 41.0 
10.5 42.0 
10.6 38.0 
10.7 44.0 
10.8 42.0 
10.9 39.0 
11.0 37.0 
11.1 37.0 
11.2 45.0 
11.3 36.0 
11.4 37.0 
11.5 37.0 
11.6 40.0 
11.7 44.0 
11.8 45.0 
11.9 46.0 
12.0 44.0 
12.1 40.0 
12.2 41.0 
12.3 39.0 
12.4 41.0 
+0

Also wollen Sie nicht die Header-Informationen überhaupt? – cm2

+0

Ich möchte auch die Header-Informationen lesen. :) – user3029076

+0

Ok, dann im Grunde parsen Sie den Header getrennt; Siehe meine Antwort unten. – cm2

Antwort

20

Wenn Sie nicht über die ersten n Zeilen wollen versuchen (wenn es keine fehlenden Daten):

data = numpy.loadtxt(yourFileName,skiprows=n) 

oder (wenn es fehlen Daten):

data = numpy.genfromtxt(yourFileName,skiprows=n)  

Wenn Sie dann die Header-Informationen analysieren möchten, können Sie zurückgehen und open die Datei der Header, zum Beispiel analysieren:

fh = open(yourFileName,'r') 
for i,line in enumerate(fh): 
    if i is n: break 
    do_other_stuff_to_header(line) 
fh.close() 
+0

Ich denke, ich habe die Idee, muss ich den csv.dictreader verwenden, um in der Kopfzeile zu lesen? – user3029076

+0

Was ich oben habe, wird über die Linien schleifen, bis Sie die Linie 'n' treffen und dann wird es aufhören. Wenn es über sie hinwegläuft, können Sie alles tun, was Sie analysieren wollen. – cm2

+0

Wie importiere ich nicht die letzten n Zeilen? – Swift

Verwandte Themen