Hallo zusammen,
Auf der Suche nach einem Tutorial bei dem es ums Parsen geht bin ich leider nicht fündig geworden. Speziell geht es bei mir um txt Daten. Kennt jemand ne gute Seite oder ein gutes Buch? Vorzugsweise deutsch zur Not aber auch englisch.
Parsen
@Eisi: Für ein Tutorial ist das vielleicht ein wenig umfangreich, denn es gibt ja zig Methoden Parser zu schreiben. Ich persönlich verwende gerne die PyParsing-Bibliothek wenn reguläre Ausdrücke anfangen zu kompliziert zu werden oder schlicht nicht mehr ausreichen. Es gibt aber auch andere Parser-Bibliotheken.
@lackschuh: Wikipedia sagt dazu „Ein Parser [ˈpɑːʁzɐ] (engl. to parse, „analysieren“, bzw. lateinisch pars, „Teil“; im Deutschen gelegentlich auch Zerteiler) ist ein Computerprogramm, das in der Informatik für die Zerlegung und Umwandlung einer beliebigen Eingabe in ein für die Weiterverarbeitung brauchbares Format zuständig ist.”
Also vielleicht nicht „neu strukturieren”, sondern überhaupt erst mal in eine Datenstruktur überführen. Denn die Eingabe ist ja üblicherweise einfach Text.
Also vielleicht nicht „neu strukturieren”, sondern überhaupt erst mal in eine Datenstruktur überführen. Denn die Eingabe ist ja üblicherweise einfach Text.
@BlackJack
Hallo
Das Wiki Zitat verwirrt mich mehr als es hilft. Hab mal im Duden nachgeschaut und da steht zu Parser:
Substantiv, maskulin - Programm, das eine syntaktische Analyse durchführt
Also das mit 'neu strukturieren' ist auch Blödsinn.
Wie würdest du einem Unwissendem das Wort erklären? Folgendes verwirrt mich eben: "[...]erst mal in eine Datenstruktur überführen"
zB ein HTML Parser wie BeautifulSoup/HTMLParser: Wenn schon der Text in HTML formatiert vorliegt, ich mir alle Links oder so ausgeben lasse, dann habe ich ja eigentlich keine 'neue' Datenstruktur aufgebaut, oder?
Sry, eventuell ist das eher off topic...
mfg
Hallo
Das Wiki Zitat verwirrt mich mehr als es hilft. Hab mal im Duden nachgeschaut und da steht zu Parser:
Substantiv, maskulin - Programm, das eine syntaktische Analyse durchführt
Also das mit 'neu strukturieren' ist auch Blödsinn.
Wie würdest du einem Unwissendem das Wort erklären? Folgendes verwirrt mich eben: "[...]erst mal in eine Datenstruktur überführen"
zB ein HTML Parser wie BeautifulSoup/HTMLParser: Wenn schon der Text in HTML formatiert vorliegt, ich mir alle Links oder so ausgeben lasse, dann habe ich ja eigentlich keine 'neue' Datenstruktur aufgebaut, oder?
Sry, eventuell ist das eher off topic...
mfg
Doch, genau das macht man. Am Anfang hast du nur Text, also eine einfache lineare Folge von Buchstaben (bzw. Bytes, aber den Schritt kann man sich sparen). Dieser Text wird dann überlichweise in einen Baum überführt. Die Knoten repräsentieren dann die HTML-Elemente mit all ihren Attributen, die Kanten beschreiben Eltern-Kind-Beziehungen. Die Operationen auf einem Baum sind ganz andere als auf einfachem Text und damit auch eindeutig andere Datenstrukturen.lackschuh hat geschrieben:zB ein HTML Parser wie BeautifulSoup: Wenn schon Text in HTML formatiert vorliegt, ich mir alle Links oder so ausgeben lasse, dann habe ich ja eigentlich keine 'neue' Datenstruktur aufgebaut, oder?
Das Leben ist wie ein Tennisball.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Auch wenn die Struktur des Baumes schon im HTML/XML/SGML/... Format steckt, ist sie fuer Programme nicht direkt nutzbar: Das ist einfach nur Text. Erst der Parser der das Wissen um die Grammatik des Textes und seine Struktur hat kann dann die _Daten_struktur des Baumes fuer Programme aufbauen.
Der konkrete Fall ist aber doch recht speziell, weil die Struktur fuer Menschen recht einfach erkennbar ist.
Der konkrete Fall ist aber doch recht speziell, weil die Struktur fuer Menschen recht einfach erkennbar ist.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Der konkrete Fall ist doch eher der Normalfall. Warum sollte ich ein Datenformat nehmen, das man erst Parsen muß, also für den Computer ein Nachteil ist, wenn es nicht für den Menschen von Vorteil ist, weil er die Struktur schnell erkennt.cofi hat geschrieben:Der konkrete Fall ist aber doch recht speziell, weil die Struktur fuer Menschen recht einfach erkennbar ist.
Alternativ könnte man alles als Binärdaten speichern, die der Computer nicht Parsen muß, dafür braucht der Mensch etwas mehr Gehirnkapazität, um es verstehen zu können.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Was ich damit meinte, ist dass hier die Rohdaten schon sehr strukturiert sind und das auch explizit erkennbar ist. So dass man eben den Eindruck bekommt, dass doch schon alles was man braucht in der Datei steht und kein besonderes Wissen durch den Parser dazukommen muss.
Fuer das Parsen an sich ist das natuerlich kein Spezialfall. Aber dein Einwand passt dann doch nur fuer Datenformate und das ist ein Subset von Parseranwendungen. Die Freiheit etwas computerfreundliches zu waehlen hat man bei natuerlichen Sprachen und auch Programmiersprachen beispielsweise nicht.
Fuer das Parsen an sich ist das natuerlich kein Spezialfall. Aber dein Einwand passt dann doch nur fuer Datenformate und das ist ein Subset von Parseranwendungen. Die Freiheit etwas computerfreundliches zu waehlen hat man bei natuerlichen Sprachen und auch Programmiersprachen beispielsweise nicht.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Pah, XSLT erfreut sich doch grosser Beliebtheit
Ach ne, nicht Beliebtheit ... Nutzung. Naja wer weiss ob das freiwillig ist
Ach ne, nicht Beliebtheit ... Nutzung. Naja wer weiss ob das freiwillig ist
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das finde ich etwas kurz gegriffen bzw. an der üblichen Nutzung des Wortes vorbei. So gesehen wäre ein Parser ein Programm welches einem sagt ob z.B. die Klammern balanciert sind. Klar, das macht ein Parser *auch*, aber das ist in der Regel eher Mittel zum Zweck, nämlich der Umwandlung der linearen Textdarstellung in eine Struktur die unter einer gegebenen Grammatik nützlicher für die Verarbeitung ist. Insofert finde ich kann man durchaus von "neu strukturieren" sprechen, der Duden ist nun auch eher kein typisches Informatik-Nachschlagewerk.lackschuh hat geschrieben:Das Wiki Zitat verwirrt mich mehr als es hilft. Hab mal im Duden nachgeschaut und da steht zu Parser:
Substantiv, maskulin - Programm, das eine syntaktische Analyse durchführt
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice