Seite 1 von 1
einen datei durchsuchen
Verfasst: Freitag 30. Januar 2004, 11:46
von DER Olf
hi!
gibt es in python eine möglichkeit eine datei (z.b. .txt) nach einem wort zu durchsuchen? vereinfacht:
Code: Alles auswählen
suche "Hallo"
if "Hallo" was found:
print "Hallo wurde gefunden"
so in der art. muss ich dazu das modul string importieren? ich hab noch nie damit gearbeitet....
Verfasst: Freitag 30. Januar 2004, 12:10
von Milan
Hi. Du musst einfach nur den Text der Datei durchsuchen:
Code: Alles auswählen
f=open("datei.txt","rb")
if f.read().find("Hallo")!=-1:
print "Hallo wurde gefunden"
f.close()
Oder dachtest du was komplizierteres?
Verfasst: Freitag 30. Januar 2004, 12:56
von DER Olf
es müsste nach mehreren wörtern dann gesucht werden. aber da kümmer ich mich die nächsten tage drum.
der grund zu der frage is hier:
http://www.notze.de/deutsch.html 
Verfasst: Donnerstag 5. Februar 2004, 17:02
von Aron Squander
Du kannst die Datei einfach in einen String einlesen und den dann, wenn es so komplex wird, mit regular expressions durchsuchen. Modul ist re
http://www.python.org/doc/current/lib/module-re.html
Hier findest du so das wichtigste zu dem Thema
Verfasst: Donnerstag 5. Februar 2004, 17:16
von DER Olf
Verfasst: Donnerstag 5. Februar 2004, 17:28
von Aron Squander
Naja, du hast geschrieben, dass du auch nach mehreren Wörtern suchen musst und ähnliches. Dafür sind regexp klasse. Wenn ich dich jedoch falsch verstanden habe, und es dir um ein Basic Tutorial geht, dann sorry, dann ist dies nicht der richtige Weg

Verfasst: Donnerstag 5. Februar 2004, 17:44
von DER Olf
naja, falsch verstanden hsat du mich wohl nicht. nur ich verstehe _das_ nicht.

zum link, den ich davor gepostet hatte, und weslhabt eiegntlich die frage kam:
wir werden erstmal nen crosscompiler zu py code schreiben. es geht in den nächsten tagen los. sobald das projekt sich weiterentwickelt (und meine kentnisse in python auch), werde ich evt. dieses modul benutzten. wenn es so einfach ist, wie du sagst...
Verfasst: Donnerstag 5. Februar 2004, 18:53
von Dookie
es gibt auch ein HowTo für Regular Expressions
http://www.amk.ca/python/howto/regex/
Gruß
Dookie
Verfasst: Freitag 6. Februar 2004, 11:15
von Aron Squander
Regular expressions kann man verwenden um bestimmte Textschemata in einem Text, sprich in einem String, zu finden. Oder auch bestimmte worte oder Wortfolgen. Oder... Also alles was man an Suchen in Strings so braucht. Wie es genau geht? Da ist das howto schon echt gut.
Ansonsten: Ein Beispiel
Code: Alles auswählen
Link_re = re.compile(r'<A\sHREF=.SHW.*?TD>', re.IGNORECASE|re.DOTALL)
treffer = Link_re.findall(sourcestring)
Das findet alle Teilstrings in sourcestring, die mit "<a href=xSHWx" anfangen, x steht für irgendwas. Aufhören soll der Teilstring mit TD> Die bekommst du in treffer als liste gespeichert. Mit
gibst du die dann aus. zum Beispiel
Greetings
Aron
Verfasst: Freitag 6. Februar 2004, 14:43
von Milan
Hi. Die RE's sind wirklich eine mönströse Waffe, aber man sollte in ihrem Gebrauch vorsichtig sein, also nicht mit Kanonen auf Spatzen schießen. So sind sie zwar sehr dynamisch und gut geeignet lange Texte auf Muster zu durchsuchen, kosten aber entsprechend auch viel Laufzeit (rund 10 mal soviel wie eine "einfache Suche"). Dies sollte nicht weiter ins Gewicht fallen, falls nur einmal eine kleine Abfrage zu tätigen ist, aber wenn viele male ein RE genutzt werden soll, wäre es schon besser zu überlegen, ob und wie man sie einsetzten soll.
Milan