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