Daten aus Textdatei in andere Textdatei schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Hallo

wollte ein Script erstellen und fragen ob mein vorgehen richtig ist.

Ich habe eine Textdatei die folgendermaßen aufgebaut ist.


<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="469" Titel="Trop Hall W " Bereich="izr" > Trop Hall W

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>


Ich wollte jetzt das jeweils eine neue Datei erstellt wird mit dem Namen welcher bei Titel angegebn ist.
Inhalt der Datei wäre dann: Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

Mein Plan dazu:
1. Datei einlesen
2. das erste mal den Bereich <Datei ........ </Datei> zwischenspeichern
3. von Titel den Wert auslesen
4. Datei erstellen mit dem Name vom Titel
5. In diese Datei das zwischengespeicherte einfügen
6. Aus dieser Datei dann entfernen was in der ersten Zeile steht von (<Datei Kennung="....." Titel="........" Bereich="....." >)
und letzte Zeile entfernen (</Datei>).
7. Wieder vorn anfangen und den nächsten Bereich einlesen.


Ist dieser Plan erstmal so in Ordnung oder würdet Ihr das anders machen, Reihenfolge, Vorgehensweise?

Grüße
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo und willkommen im Forum!

Es handelt sich wohl eher um eine XML-Datei als um eine einfache Textdatei. Python bietet dafür jede Menge Unterstützung, dann musst du nicht alles per Hand machen und kannst direkt auf den Inhalt der Datei-Elemente zugreifen. Insgesamt sollte das Script dann nicht länger werden als vielleicht 10 Zeilen. Am besten suchst du hier im Forum ein wenig nach XML, dann bekommst du einen Überblick über die Tools.
Das Leben ist wie ein Tennisball.
Sirius3
User
Beiträge: 18264
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo danpy,

soll das xml sein? Dann würde noch ein root-Element fehlen, das die vielen <Datei...> umschließt.
Ist dann der Text zwischen den >...< noch irgendwie formatiert?

Ich verstehe nicht, was Du mit Zwischenspeichern meinst.
Soll immer die ganze Zeile in der <Datei ...> steht nicht gespeichert werden?

Dann:
Datei Zeilenweise einlesen:
1. Wenn Zeile <Datei... enthält, neue Datei output mit Namen titel erstellen.
2. Wenn Zeile </Datei> enthält output schließen
3. Sonst Zeile in output schreiben, falls output eine geöffnete Datei ist.

Grüße
Sirius
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Sirius3 hat geschrieben:Datei Zeilenweise einlesen:
1. Wenn Zeile <Datei... enthält, neue Datei output mit Namen titel erstellen.
2. Wenn Zeile </Datei> enthält output schließen
3. Sonst Zeile in output schreiben, falls output eine geöffnete Datei ist.
Genau das sollte man auf keinen Fall, niemals und unter keinen Umständen tun. Wer xml per Hand verarbeitet, der kann sich nur in den eigenen Fuß schießen. Fehler sind garantiert, unübersichtlicher Code entsteht durch die ganzen Sonderfälle und bei kleinsten Änderungen an der XML-Datei, obwohl es sich um die selben Daten handelt, fliegt eim das ganze um die Ohren. Nicht zu vergessen, dass man noch mehr Code programmieren muss. Eine einfache xpath-Abfrage ist kürzer als dein vorgeschlagenes händisches Parsing und ist in jeder Angelegenheit einem eigenen Ansatz überlegen.
Das Leben ist wie ein Tennisball.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Hallo
danke für die Begrüßung, das geht ja richtig schnell. :D

Habe mir schon gedacht das ich mich umständlich ausgedrückt habe.

Die Datei ist eine reine Textdatei, kein xml.

Habe die Datei mal mit Zeilennummern versehen, so ist es übersichtlicher?

1.<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1
2.
3.Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
.....
14.
15.</Datei>
16.<Datei Kennung="469" Titel="Trop Hall W " Bereich="izr" > Trop Hall W
17.
.......
18.Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
39.
40.</Datei>


In der Textdatei gibt es immer ein bestimmtes Muster der Daten:
1. Startet immer mit <Datei
2. eine Leerzeile
3. der Text - Länge ist unterschiedlich
4. eine Leerzeile
5. endet immer mit </Datei>
6. dann wieder <Datei

Mein Plan dazu:
1. Textdatei einlesen
2. das erste mal den Bereich <Datei ........ </Datei> einlesen und
3. neue Datei erstellen mit dem Inhalt vom gerade eingelesenen
4. Name der Datei wird gebildet vom Wert des Titels
5. Aus dieser Datei dann entfernen was in der ersten Zeile steht von <Datei Kennung="....." Titel="........" Bereich="....." >
und letzte Zeile entfernen </Datei>.
6. Wieder vorn anfangen und den nächsten Bereich einlesen.


Sollte dann so aussehen wenn der erste Bereich eingelesn wurde.
Morgen 1.txt
Inhalt wäre: Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.................

Habe den Plan schon ein wenig verändert. :D
Was sagt Ihr dazu?
Sirius3
User
Beiträge: 18264
Registriert: Sonntag 21. Oktober 2012, 17:20

@EyDu: ich denke eher, da hat jemand beim Erzeugen der Ursprungsdatei gedacht, er würde gerne
sowas wie pseudo-XML schreiben. Dass es sich um kein XML handelt, sieht man ja schon am
fehlenden root-Tag. Und pseudo-XML kann eben kein XML-Parser lesen. Pech für denjenigen, der
die Daten weiterverarbeiten will.
Sirius3
User
Beiträge: 18264
Registriert: Sonntag 21. Oktober 2012, 17:20

@danpy: wie in meinem ersten Posting, am besten die Datei zeilenweise verarbeiten.

Wenn Du weißt, was Du tust, so:

Code: Alles auswählen

import re
REG_PARSE=re.compile(r'<Datei[^>]*Titel="\s*([^"]*?)\s*"[^>]*>\s*\1\s*(.*?\n)\s*</Datei>',re.DOTALL)
with open(filename) as infile:
    for outfilename, text = REG_PARSE.finditer(infile.read()):
        with open('%s.txt'%outfilename,'w') as outf:
            outf.write(text)
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Danke an Sirius3.

Werde das mal anschauen und schauen ob das funktioniert.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Wo sieht man denn an den Daten, dass es sich nicht um XML handelt? Es steht doch oben, dass es sich um einen Ausschnitt aus einer Datei handelt und nicht um den kompletten Inhalt. Wir werden es aber nie erfahren, wenn danpy nicht mal eine komplette Datei zeigt. Und sollte tatsächlich nur ein root-Element fehlen, dann würde ich das eher dynamisch hinzufügen als mit regulären Ausdrücken zu arbeiten.

Was passiert, wenn zum Beispiel die Datei-Elemente in andere Elemente verschachtelt werden, dann aber nicht zu den extrahierenden Daten dazugehören? So etwas ist jetzt nicht unwahrscheinlich und wird bei deinem RE zu diversen Kunststückchen führen. Und natürlich fallen dann noch so übliche Sachen an: was ist zum Beispiel mit Whitespace hinter dem Elementnamen? Man sollte erwarten, dass das vollkommen in Ordnung ist. Bei dir bekommt man dann allerdings nichts zurück.
Das Leben ist wie ein Tennisball.
Sirius3
User
Beiträge: 18264
Registriert: Sonntag 21. Oktober 2012, 17:20

Und noch viel mehr schlimme Dinge können passieren, wenn man denkt, man könnte pseudo-XML
durch ein paar kleine Änderungen in richtiges XML umwandeln. In 99% der Fälle bricht einfach nur
der Parser mit einer Fehlermeldung ab, in den restlichen Fällen passieren Dinge, die der Laie nicht
bemerkt / nicht versteht und zum Schluß mit verstümmelten Dateien dasteht.

@danpy: Woher kommt die Eingabedatei? Wer erzeugt sie? Gibt es eine Spezifikation dafür?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Du willst jetzt aber nicht erzählen, dass ein Abbruch durch eine Fehlermeldung etwas Schlechtes ist, oder? So hat man zumindest, im Gegensatz zu der RE-Lösung, die Chance etwas Unerwartetes zu erkennen. Aber ohne das Format macht eine Diskussion in diesem Kontext darüber nicht besonders viel Sinn.
Das Leben ist wie ein Tennisball.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Mahlzeit an alle. :D

Bin jetzt noch nicht dazugekommen den Code von Sirius nachzuschauen und zulesen.
Muss erstmal etwas essen.

Da gefragt wurde ob das eine xml datei ist, nein es ist eine datei mit der endung .txt

Anbei wie eine Datei aussieht.
In der Textdatei gibt es immer ein bestimmtes Muster der Daten:
1. Startet immer mit <Datei
2. eine Leerzeile
3. der Text - Länge ist unterschiedlich mit Leerzeilen.
4. eine Leerzeile
5. endet immer mit </Datei>
6. dann wieder <Datei


Code: Alles auswählen

<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="469" Titel="Trop Hall W " Bereich="izr" > Trop Hall W

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.


</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
BlackJack

@danpy: Was für eine Dateinamensendung eine Datei hat entscheidet nicht darüber ob es eine XML-Datei ist oder nicht, sondern der Inhalt. Wenn es dort tatsächlich kein Wurzelelement gibt, dann ist es kein XML, aber nicht weil der Dateiname mit '.txt' endet.

Wer oder was erzeugt denn so eine Datei? Ich würde mir ja ein möglichst schweres Buch über XML nehmen, den Verantwortlichen suchen, und so lange mit dem Buch auf ihn einschlagen bis er schwört so etwas furchtbares nie wieder zu tun. :evil:

Statt eines regulären Ausdrucks würde ich für die erste Zeile wohl zu einer Parserbibliothek wie PyParsing greifen.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Habe jetzt mal den code von Sirius probiert

Code: Alles auswählen


import re
REG_PARSE=re.compile(r'<Datei[^>]*Titel="\s*([^"]*?)\s*"[^>]*>\s*\1\s*(.*?\n)\s*</Datei>',re.DOTALL)
with open(wiki-00) as infile:
    for outfilename, text = REG_PARSE.finditer(infile.read()):
        with open('%s.txt'%outfilename,'w') as outf:
            outf.write(text)
da kommt jetzt folgende Meldung

Code: Alles auswählen

File "codesirius.py", line 6
    for outfilename, text = REG_PARSE.finditer(infile.read()):
                          ^
SyntaxError: invalid syntax
Was muss ich den jetzt machen?
BlackJack

@danpy: Nun da ist offensichtlich ein Syntaxfehler bei der ``for``-Schleife. Der sollte aber eigentlich auch für Pytho-Anfänger leicht zu beheben sein, denn Schleifen sind Grundlagen.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Beschäftige mich seit heute morgen mit Python.
Bin wahrscheinlich noch die Stufe vor einen Anfänger. lol

Ok, werde jetzt erstmal etwas zu den Schleifen lesen.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Guten Morgen

habe jetzt über die Schleifen gelesen und da fehlt im Code eine Variabel.
Sollte eigentlich so aussehen: for i in

Habe mir überlegt anders an die Lösung heranzugehen.

Hier ist der Code on Sirius.

Code: Alles auswählen

import re
REG_PARSE=re.compile(r'<Datei[^>]*Titel="\s*([^"]*?)\s*"[^>]*>\s*\1\s*(.*?\n)\s*</Datei>',re.DOTALL)
with open(filename) as infile:
    for outfilename, text = REG_PARSE.finditer(infile.read()):
        with open('%s.txt'%outfilename,'w') as outf:
            outf.write(text)

Ich werde der Reihe nach abarbeiten was der Code macht.
Wenn ich das richtig verstehe steht in der ersten Zeile das die Datei von bis eingelesen wird.

Code: Alles auswählen

REG_PARSE=re.compile(r'<Datei[^>]*Titel="\s*([^"]*?)\s*"[^>]*>\s*\1\s*(.*?\n)\s*</Datei>',re.DOTALL)
Habe nun versucht mit print das auszugeben bekomme aber nur eine Fehlermeldung

Code: Alles auswählen

import re
REG_PARSE=re.compile(r'<Datei[^>]*title="\s*([^"]*?)\s*"[^>]*>\s*\1\s*(.*?\n)\s*</Datei>',re.DOTALL)
with open(file) as infile:
print "REG_PARSE"
Fehlermeldung

Code: Alles auswählen

File "schritt.py", line 4
    print "REG_PARSE"
        ^
IndentationError: expected an indented block
Was mache ich falsch?
BlackJack

@danpy: Bei der Schleife fehlt keine Variable — es gibt ja sogar zwei — sondern das ``=`` müsste ein ``in`` sein.

In der ersten Zeile wird nichts eingelesen sondern ein regulärer Ausdruck in ein Objekt übersetzt mit dem man diesen Audruck auf Zeichenketten anwenden kann. Und ein ``print "REG_PARSE"`` gibt nicht einmal dieses Objekt aus, sondern einfach den Text „REG_PARSE”.

Die Fehlermeldung sagt eigentlich ziemlich deutlich dass dort ein eingerückter Block erwartet wird. Einrückung ist ein wesentlicher Bestandteil von Python's Syntax und wird deshalb in jedem halbwegs vernünftigen Tutorial bei den ersten Kontrollstrukturen behandelt bei denen der Compiler wissen muss welcher Code zu einem Block gehört.

Du solltest die konkrete Aufgabe vielleicht erst einmal zurück stellen und ein ganz allgemeines Python-Tutorial durcharbeiten um die Grundlagen bis mindestens zum Definieren von eigenen Funktionen zu lernen. In der Python-Dokumentation ist ein Tutorial und Learn Python The Hard Way scheint für Anfänger ganz gut zu sein (nicht vom Namen abschrecken lassen).

Reguläre Ausdrücke sind eine Sprache für sich und auch nicht nur auf Python beschränkt. Mindestens eine Bibliothek dafür findet man für viele Programmiersprachen. Darüber gibt es also auch unabhängig von Python-Dokumentation Tutorials und Bücher. Auf Python bezogen gibt es in der Python-Dokumentation neben der Referenz zum `re`-Modul noch das Regular Expression HOWTO.
danpy
User
Beiträge: 12
Registriert: Donnerstag 20. Dezember 2012, 07:09

Ok, dann ist dieser Code anscheinend nichts für mich und der Sirius hat da irgend etwas zusammengeschrieben.


Werde dann meine Frage nochmal stellen:

Ich habe eine Datei die so aussieht:

Code: Alles auswählen

<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="469" Titel="Trop Hall W " Bereich="izr" > Trop Hall W

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.


</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>
<Datei Kennung="4bc78" Titel="Morgen 1" Bereich="I847YP" > Morgen 1

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.

</Datei>

Wollte dann ein Script schreiben das mir viele Dateien ausgibt die genauso heißen wie jeweils der Titel
und mit folgenden Inhalt

Code: Alles auswählen

Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.
Hier kommt ein Text aus Zahlen und Buchstaben, bestehend aus mehreren Zeilen.



Bevor ich das Sript schreibe muss ich erstmal wissen was es machen soll.
Hier mein Plan dazu:

1. Textdatei einlesen
2. das erste mal den Bereich <Datei ........ </Datei> einlesen und
3. neue Datei erstellen mit dem Inhalt vom gerade eingelesenen
4. Name der Datei wird gebildet vom Wert des Titels
5. Aus dieser Datei dann entfernen was in der ersten Zeile steht von <Datei Kennung="....." Titel="........" Bereich="....." >
und letzte Zeile entfernen </Datei>.
6. Wieder vorn anfangen und den nächsten Bereich einlesen.



Ist dieser Ablauf so in Ordnung oder sollte eine andere Reihenfolge gewählt werden?

Ich habe diese Frage schonmal gestellt, daraufhin habe ich eigentlich keine gescheite Antwort bekommen!
Sondern nur eigentlich nur darüber philosophiert ob das xml ist oder nicht.

Bitte diesmal keine Codes posten oder diskutieren über Datei xml ja oder nein!

Einfach nur sagen ob mein Plan so funktionieren könnte, wenn nicht dann sagen was ich daran ändern sollte.

Grüße
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

danpy hat geschrieben:Ok, dann ist dieser Code anscheinend nichts für mich und der Sirius hat da irgend etwas zusammengeschrieben.
Ähhhm ... nein. Das du den Code nicht zum Laufen bekommst liegt eher an deinen mangelnden Pythonkenntnissen als an der kleinen Unachtsamkeit von Sirius3.
Das Leben ist wie ein Tennisball.
Antworten