einen datei durchsuchen

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.
Antworten
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

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....
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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?
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

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 :wink:
Aron Squander
User
Beiträge: 21
Registriert: Donnerstag 5. Februar 2004, 16:12
Wohnort: Mainz
Kontaktdaten:

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
The best view of ones Soul you get
from a little bit over the edge
looking back
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

muss ich das verstehen??????? :shock: :shock: :?: :?: :?:
ich versteh nich ganz was ich damit soll.
Aron Squander
User
Beiträge: 21
Registriert: Donnerstag 5. Februar 2004, 16:12
Wohnort: Mainz
Kontaktdaten:

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 :wink:
The best view of ones Soul you get
from a little bit over the edge
looking back
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

naja, falsch verstanden hsat du mich wohl nicht. nur ich verstehe _das_ nicht. :D
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...
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

es gibt auch ein HowTo für Regular Expressions
http://www.amk.ca/python/howto/regex/


Gruß

Dookie
Aron Squander
User
Beiträge: 21
Registriert: Donnerstag 5. Februar 2004, 16:12
Wohnort: Mainz
Kontaktdaten:

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

Code: Alles auswählen

for hit in treffer
              print(hit)
gibst du die dann aus. zum Beispiel
Greetings
Aron
The best view of ones Soul you get
from a little bit over the edge
looking back
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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
Antworten