Seite 1 von 1

Parsing Problem-> eine Line aus dem file ziehen

Verfasst: Mittwoch 17. Oktober 2007, 17:11
von acidk
Hallo Leute!
Hab mal wieder ein parsing Problem und komme nicht weiter.
File:
CALCULATIONS FOR GRID PLANE NZ= 5 AT Z = -2.350
BEGIN WRITING RESULTS FOR THIS PLANE TO FILE
RESULTS FOR PLANE NZ= 5 HAVE ALL BEEN WRITTEN TO FILE
=======================================================

POINT E( 11, 8, 5) HAS -10.3042 KCAL/MOLE AT POSITION 17.990 59.140 -2.350

NEAREST ATOMS TO THIS POSITION ARE:- DISTANCES ATOM ENERGIES D DI
LJ ACTUAL HB D A CHARGE EQ ELJ EHB A ETOT EL
1372 1372 OG SER 16.752 60.529 -0.261 0.00 0.00 3.25 2.797 2.80 1 2 -0.107 0.71 -99.99 -4.14 A -3.43 8.
1983* 1372 HOG HYD 15.879 60.438 -0.740 2.955
1982* 1367 HN HYD 19.284 59.962 0.314 3.074
usw.

Ich möchte die Point Zeile extrahieren. Mit "findall" konnte ich keinen passenden reg. Expression finden.

mein Ansatz:

Code: Alles auswählen

from re import *

re =compile('point', I)

source = file('1pe6separated_in.lont','r')
info = str(source.readlines())

for i in info:
    if re.match(info):
       print i
fkt. nur leider nicht
:x

Wär Klasse, wenn jemand einen Tip für mich hätte!

Vielen Dank

Verfasst: Mittwoch 17. Oktober 2007, 17:52
von Rebecca
Reicht in deinem Fall nicht auch

Code: Alles auswählen

line.startswith("POINT")
oder

Code: Alles auswählen

line.upper().startswith("POINT")
:?:

Verfasst: Mittwoch 17. Oktober 2007, 19:17
von BlackJack
@acidk: Du machst aus einer Liste mit Zeilen eine Zeichenkette und schaust dann ob bei jedem *Zeichen* ob der reguläre Ausdruck passt!

Benutz doch mal ``print`` und `type()` um zu sehen was Du da machst. Dann wäre Dir das auch selbst aufgefallen.