Ich verstehe immer noch nicht, was genau erreicht werden soll. Der OP geht ja leider auch nicht auf Nachfragen oder Hinweise ein. Diese Attitüde mag ich persönlich nicht - demotiviert sie einen doch ziemlich zu helfen.
Naja, dann noch viel Erfolg beim Prokeln!
Suchmuster
OK
ich erkläre kurz was ich machen will.
Erstens in meinem gespeicherten DB die Tabelle Text lesen und diese als Text speichern ( Das ist jetzt ok) und dann in diesem Text mit Hilfe von Regex muster extrahieren und um zu erreichen, dass die daten so aussehen:
Word1: Begriffserklärungerklärung
Word2: Begriffserklärungerklärung
etc.....
Ist es überhaupt möglich in einem CSV datei mit Regex zu suchen. Ich hoffe das ist klar.
ich erkläre kurz was ich machen will.
Erstens in meinem gespeicherten DB die Tabelle Text lesen und diese als Text speichern ( Das ist jetzt ok) und dann in diesem Text mit Hilfe von Regex muster extrahieren und um zu erreichen, dass die daten so aussehen:
Word1: Begriffserklärungerklärung
Word2: Begriffserklärungerklärung
etc.....
Ist es überhaupt möglich in einem CSV datei mit Regex zu suchen. Ich hoffe das ist klar.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das "Aussehen" ist ziemlich unbedeutend - die Datenstruktur dahinter ist der casus knacktus! Was Du da zeigst erinnert sofort an ein Dictionary in Python. Du musst also ein solches aus den Daten der Datenbank erzeugen.
Nun ist die Frage, wie die Tabelle aufgebaut ist - ohne diese Info kann man nicht weiter machen. Kennt man deren Struktur, so kann man auch ableiten, wie man diese Tupel in ein Dict bekommt.
Als letztes stellt sich weiterhin die Frage, was letztendlich mit der Datenstruktur weiter gemacht werden soll. Denn gff. böte es sich an, selbige in einer anderen DB zu lassen, wie etwa SQLite oder einen KV-Store zu nutzen, anstatt das ganze zu pickeln oder per JSON abzulegen. Aber darüber kann man erst etwas sagen, wenn da mehr Infos zu kommen. (Und ich denke es lohnt sich darüber zu diskutieren!)
Nun ist die Frage, wie die Tabelle aufgebaut ist - ohne diese Info kann man nicht weiter machen. Kennt man deren Struktur, so kann man auch ableiten, wie man diese Tupel in ein Dict bekommt.
Als letztes stellt sich weiterhin die Frage, was letztendlich mit der Datenstruktur weiter gemacht werden soll. Denn gff. böte es sich an, selbige in einer anderen DB zu lassen, wie etwa SQLite oder einen KV-Store zu nutzen, anstatt das ganze zu pickeln oder per JSON abzulegen. Aber darüber kann man erst etwas sagen, wenn da mehr Infos zu kommen. (Und ich denke es lohnt sich darüber zu diskutieren!)
Die Tabelle ist die Wikipedia dump. Ich will den Text haben und ihn mit Regex verfeinern.
Jetzt habe ich so etwas
Fehlermeldung
Jetzt habe ich so etwas
Code: Alles auswählen
result = c.fetchall()
f = csv.writer(open( "text1.txt","w" ))
for line in result:
f.writerow(line)
file= open("text1.txt","rb")
for line in file.readlines():
p = re.compile(r'\[\[(.*?)\]\](.*?)[(\\\n\*\+)]')
#p = line.replace("\(\)" , " ")
result = p.findall(line)
f = csv.writer(open("text2.txt" , "w").writerow(str(result)))
Traceback (most recent call last):
File "page_query_test.py", line 28, in <module>
f = csv.writer(open("wikiparsedexp.txt" , "w").writerow(str(result)))
AttributeError: 'file' object has no attribute 'writerow'
Zum letzten Mal die Frage:
Warum der Zwischenschritt über die Datei, ist das wirklich nötig??
Außerdem ist die Klammer in der letzten Zeile von deinem Code falsch gesetzt, vor dem writerow muss noch eine schließende Klammer. Das ist der Fehler.
Und verwende nächstes mal Python-Code-Tags, dann ist der Quelltext gleich noch schön formatiert (ohne die Leerzeichen): [ code=py ][ /code ]
Edit:
Noch ein paar Dinge:
- öffne Dateien mit `with`
- verwende keine builtin-Namen wie `file`
- `for line in file` macht das gleiche wie `for line in file.readlines()` und ist speicherschonender
Warum der Zwischenschritt über die Datei, ist das wirklich nötig??
Außerdem ist die Klammer in der letzten Zeile von deinem Code falsch gesetzt, vor dem writerow muss noch eine schließende Klammer. Das ist der Fehler.
Und verwende nächstes mal Python-Code-Tags, dann ist der Quelltext gleich noch schön formatiert (ohne die Leerzeichen): [ code=py ][ /code ]
Edit:
Noch ein paar Dinge:
- öffne Dateien mit `with`
- verwende keine builtin-Namen wie `file`
- `for line in file` macht das gleiche wie `for line in file.readlines()` und ist speicherschonender
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Und wie sieht die aus? (poste doch mal das create-Statement hier!)kawkaw hat geschrieben:Die Tabelle ist die Wikipedia dump. Ich will den Text haben und ihn mit Regex verfeinern.
Außerdem: Das sind doch sicher mehrere Tabellen?