[Code] [Python] Textdatei formatieren

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von aRiGaT0, 13. Januar 2011 .

  1. 13. Januar 2011
    [Python] Textdatei formatieren

    Hey Leute!

    Ich brauch mal eure Hilfe. Ich sitze schon ziemlich lange an einer Funktion und sehe den Wald wohl vor lauter Bäumen nicht mehr, deswegen poste ich das hier mal.

    Es geht um folgendes: Es existiert eine Textdatei. Den Inhalt dieser Datei möchte ich in die richtige Reihenfolge bringen. In der Textdatei beginnen Befehle mit * und Kommentare mit **. Alles andere sind dann die zu den Befehlen gehörenden Werte.

    Also könnte die Textdatei so aussehen:

    **Ich bin ein Kommentar
    **der über mehrere Zeilen
    **geht.
    **Ich muss hier bleiben.
    *Baum
    200, 500, 600
    800, 80 , 58
    **Funktion Baum
    *Haus
    50, 58 , 70
    87, 12, 17
    900, 50
    **Funktion Haus
    ...

    Für das Beispiel hier gibt es jetzt zwei Befehle. Die eigentliche Reihenfolge müsste aber so aussehen:


    **Ich bin ein Kommentar
    **der über mehrere Zeilen
    **geht.
    **Ich muss hier bleiben.
    *Haus
    50, 58 , 70
    87, 12, 17
    900, 50
    **Funktion Haus
    *Baum
    200, 500, 600
    800, 80 , 58
    **Funktion Baum
    ...

    Die Reihenfolge ist also immer die selbe, auf Haus folgt Baum usw. Es kann auch vorkommen, dass es mehrere Baum & Haus Funktionen gibt, jedoch ist es immer die selbe Anzahl.

    Ich hoffe es ist klar geworden um was es geht. Wichtig ist, dass die Anzahl der Werte nach den Befehlen unterschiedlich sein kann.

    Ich bin so vorgegangen: die Textdatei wird als Liste eingelesen (readlines), die Zeilennummer werden mit einer RegEx gesucht. Die erhaltene Liste habe ich mit sort() sortiert und mit der eigentlichen Liste verglichen (Liste sortiert und Liste unsortiert). Wenn es eine abweichung gibt, lösche ich die beteffenden Zeilen. Schließlich versuche ich die Zeilen wieder an die richtige Stelle einzufügen mit insert().
    Jedoch ist der Ansatz ziemlich kompliziert wie ich finde. Außerdem habe ich bis jetzt noch das Problem, dass die eingefügten Befehle mit ihren Werten in der falschen Reihenfolge erscheinen.

    Hat jemand eine bessere Idee wie man es verwirklichen könnte?

    Grüße
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.