Muster suchen und ersetzen
Verfasst: Mittwoch 14. Juni 2006, 15:21
Hallo zusammen,
da ich in der Python-Programierung, brauche ich eure Hilfe.
Ich möchte Muster, die aus festen und variablen Teilen bestehen, in eine ASCII-Datei suchen und unter berücksichtigung der variablen Bestandteilen des Strings die Ersetzung vornehmen.
Folgendes habe ich zusammen gekriegt. Das funktioniert auch soweit, aber obwohl in der Datei mehrere Muster zufinden wären findet der Skript den ersten und ersetz alle anderen mit den Werten des ersten Treffers.
Was mach ich falsch?
gruß andy
da ich in der Python-Programierung, brauche ich eure Hilfe.
Ich möchte Muster, die aus festen und variablen Teilen bestehen, in eine ASCII-Datei suchen und unter berücksichtigung der variablen Bestandteilen des Strings die Ersetzung vornehmen.
Folgendes habe ich zusammen gekriegt. Das funktioniert auch soweit, aber obwohl in der Datei mehrere Muster zufinden wären findet der Skript den ersten und ersetz alle anderen mit den Werten des ersten Treffers.
Code: Alles auswählen
import os
import re
import glob
import string
version = 'PyJmp 0.001'
cdir=os.getcwd()
indir = cdir + "\\test"
outdir = cdir + '\\test_erg'
os.chdir(indir)
dateiliste = glob.glob('*.sgm')
for dateiname in dateiliste:
f = open(dateiname, 'r')
inhalt = f.read()
f.close()
patternSprung = '(?P<sprung>EzA § (?P<para>[0-9]+) (?P<gesetz>.*?) Nr. (?P<lsnr>[0-9]+))'
regexpSprung = re.compile(patternSprung, re.DOTALL)
regobjectSprung = regexpSprung.search(inhalt)
inhaltSprung = regobjectSprung.group()
inhaltSprung = regexpSprung.sub('<!-- ' + version + ' --><Sm PgNr="\g<para>" GsNm="\g<gesetz>" LsNr="\g<lsnr>">\g<sprung></Sm>', inhaltSprung)
inhalt = regexpSprung.sub(inhaltSprung, inhalt)
outfile = os.path.join(outdir,dateiname)
f = open(outfile, 'w')
f.write(inhalt)
f.close()
gruß andy