Suchmuster

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.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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!
kawkaw
User
Beiträge: 11
Registriert: Montag 13. April 2009, 09:52

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.
Benutzeravatar
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!)
kawkaw
User
Beiträge: 11
Registriert: Montag 13. April 2009, 09:52

Die Tabelle ist die Wikipedia dump. Ich will den Text haben und ihn mit Regex verfeinern.

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)))

	
Fehlermeldung
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'
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

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
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

kawkaw hat geschrieben:Die Tabelle ist die Wikipedia dump. Ich will den Text haben und ihn mit Regex verfeinern.
Und wie sieht die aus? (poste doch mal das create-Statement hier!)
Außerdem: Das sind doch sicher mehrere Tabellen?
Antworten