Ich habe einen ellen langen Text, der schematisch immer gleich aufgebaut ist.
Eine Headline (ausschließlich in Großbuchstaben),
gefolgt von x Zeilen Beschreibung.
Also folgendes Textkonstrukt soll mal als Beispiel dienen:
Diese Textbausteine sollten dann im Endeffekt in eine Tabelle gepackt werden:ABSORTPOS
Attribut:KLPO_AbsortierPosition
Definiert durch Basisattribut:AbsortierPosition
Definition Basisattribut:Positionsnummer einer Absortiernummer (ABSORTNR). Während die Absortier-nummer vom HOST kommt, wird die Positionsnummer fortlaufend zu einer Absortier-nummer vom LVS erzeugt. Positionstrennung während KommVorbereitung.
Einschränkung Wertebereich:Fortlaufende Positionsnummer zu einer Absortiernummer.
die einzigen verläßlichen anhaltspunkte sind die doppelpunkte als Zeilentrenner, und die ausschließlich groß geschriebene Headline, sowie der Umstand, das bei einer neuen Beschreibung zwingend ein \n vorangeht....<table>
<tr><th colspan=2> <Überschrift> </th></tr>
<tr>
<td><Beschreibung1></td>
<td><Text1></td>
</tr>
<tr>
<td><Beschreibung2></td>
<td><Text2></td>
</tr>
</table>
Problematisch wird die Sache allerdings, weil teilweise die Beschreibungen (oben als <Text1> und <Text2> angegeben) mehrzeilig sind, und dummerweise - zwar selten, aber es kommt vor - auch Zeilenumbrüche (also \n) enthalten.
Bisher bin ich noch nicht soweit....
Folgendes hab ich bereits zusammengetragen:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso8859-1 -*-
from sys import argv, exit
from os import getcwd
import re
if len(argv) < 4:
print '\nBitte geben Sie die Namen der Ein- und Ausgabedateien in dem Format "convert.py text1.txt text2.txt" ein,\n gefolgt von dem Tabellennamen (TNLxxx); Abbruch.\n'
exit(1)
f=file(getcwd()+"/"+argv[1],"r")
a=f.readlines()
f.close()
c=""
for i in a:
# if i.find("Einschränkung Wertebereich") != -1:
# i += "</td></tr></table><table><tr><td>\n"
# c += i
f=file(getcwd()+"/"+argv[2],"w")
f.write(c)
f.close()