Ich habe eine Datei, die etwa 3000 Blöcke wiederholt wie folgt (die ersten beiden gezeigt):Wie kann man Dateien mit mehreren Koordinaten einlesen und in separaten Arrays speichern?
21
Profile. 1 HEAT OF FORMATION = -79.392 KCAL = -332.175 KJ
H -2.22728 -1.35263 1.32579
H 1.21425 -1.35263 1.32579
C 1.43878 0.44129 1.32579
O 2.25748 -0.52202 1.23773
C 0.12570 -0.10907 1.38542
H -0.47394 0.10034 2.26424
C -2.02530 -1.28825 -2.05204
C -0.80697 -0.63466 -2.22403
H -0.41632 -0.42983 -3.21532
H 0.84731 0.28355 -1.21782
C -0.09866 -0.24043 -1.09182
C -1.83256 -1.15779 0.32994
C -0.59706 -0.50055 0.19091
H -3.51151 -2.06378 -0.69513
C -2.55421 -1.55647 -0.78456
O -2.78665 -1.71220 -3.09841
H -2.37922 -1.48635 -3.96745
H 2.21062 3.22762 2.75985
C 1.91952 1.85374 1.37731
O 2.22890 2.54529 0.44919
O 1.92486 2.27899 2.65936
21
Profile. 2 HEAT OF FORMATION = -79.390 KCAL = -332.168 KJ
H -2.22728 -1.35263 1.32579
H 1.21674 -1.35282 1.32529
C 1.43862 0.44132 1.32582
O 2.25745 -0.52214 1.23772
C 0.12565 -0.10889 1.38540
H -0.47402 0.10051 2.26417
C -2.02530 -1.28825 -2.05204
C -0.80697 -0.63465 -2.22403
H -0.41632 -0.42983 -3.21531
H 0.84730 0.28355 -1.21782
C -0.09865 -0.24043 -1.09182
C -1.83256 -1.15780 0.32995
C -0.59702 -0.50058 0.19094
H -3.51151 -2.06378 -0.69513
C -2.55421 -1.55647 -0.78456
O -2.78666 -1.71220 -3.09841
H -2.37922 -1.48635 -3.96745
H 2.21061 3.22763 2.75985
C 1.91953 1.85373 1.37732
O 2.22890 2.54528 0.44919
O 1.92486 2.27898 2.65936
wobei jeder Satz von Koordinaten, die durch die Anzahl der Atome (21 in diesem Fall), und eine Bildungswärme abgetrennt .
Ich frage mich, wie man jeden Satz von Koordinaten in ein separates Array einliest und schreibt, so dass ich letztendlich bestimmte Elemente dieser Arrays manipulieren kann.
'np.genfromtxt' akzeptiert Eingaben von allem, was die Zeilen füttert. Ein einfacher Anfang ist das Lesen aller Zeilen in eine Liste ('readlines'); Teilen Sie die Liste in Blöcke auf, und übergeben Sie diese einzeln an 'genfromtxt', um für jeden Block ein eigenes Array zu erhalten. – hpaulj