ich habe ein Problem beim Importieren meiner DTA files.
Die ersten 61 Zeilen sind mit Messparametern etc belegt. Anschießend kommen die Daten. Bei der Messung wurden 10 Zyklen durchgeführt, bevor die Daten des nächsten Zyklus aufgelistet werden, ist vorher z.B :"CURVE 2". Da diese Zeile weniger Spalten hat, habe ich es mit " invalid_raise=False" ignoriert. Allerdings kann ich die 2 darauffolgenden Zeilen, nicht überspringen, weil die Spaltenzahl wie bei der ersten Zeile ist. Mit der comments Funktion kann ich z.B. den ersten Input ("T") als Kommentar deklarieren, aber in der nächsten Zeile kommt dann "'s".
Das möchte ich machen, weil ich den array mit str values in einen array mit float values umwandeln möchte, das ich noch Berechnungen durchführen muss. Aber das klappt dann nicht, wenn die Zeilen "T" oder "s" enthalten.
Das funktioniert nicht:
Code: Alles auswählen
data_1 = np.genfromtxt(r"G:\xxxx.DTA",str, delimiter = "\t", skip_header = 61, invalid_raise=False,comments=('T', 's'), usecols=(2,3,4))
Code: Alles auswählen
import itertools
with open(r"G:\03-Forschungspraktikum ISEA\DataGamry\Gamry2\110919_CV_FUO_S20_1LIPF6.DTA", 'r') as f:
def predicate(line):
return not line.startswith('T', 's')
lines = (line for line in f if predicate(line))
arr = np.genfromtxt(lines)
Code: Alles auswählen
return not line.startswith('T', 's')
TypeError: slice indices must be integers or None or have an __index__ method
INSTRUMENTVERSION LABEL 4.40 Instrument Version
COMPLIANCEVOLTAGE IQUANT 0 Compliance Voltage
CURVE1 TABLE
Pt T Vf Im Vu Sig Ach IERange Over Temp
# s V vs. Ref. A V V V # bits deg C
0 1 2,71065E+000 -1,55388E-004 0,00000E+000 2,71820E+000 1,60535E-003 11 ..........a -327,67
...
...
CURVE2 TABLE
Pt T Vf Im Vu Sig Ach IERange Over Temp
# s V vs. Ref. A V V V # bits deg C
0 1 2,71065E+000 -1,55388E-004 0,00000E+000 2,71820E+000 1,60535E-003 11 ..........a -327,67