Seite 1 von 1

in Verzeichnis nach String suchen

Verfasst: Dienstag 31. März 2009, 20:45
von Alp
Guten Abend,
ich möchte eine kleine Suchfunktion machen, aber schaff das nicht ganz.
Bsp:
Ordner: projects
In welchem Ordner wollen Sie suchen?
Eingabe: projects
Was möchten sie finden?
Eingabe: "import Tkinter"

Und dann soll er im Verzeichnis "projects" in jeder Datei nachschauen ob "import Tkinter" irgendwo in der Datein drinnen steht. Sollte dies der Fall sein, soll der Dateiname angezeigt werden.

So weit schaffe ich es auch, nur möchte ich, dass auch die Unterverzeichnisse von "projects" durchsucht werden. Wie funktioniert das?

Schon im vorraus vielen Dank für eure Hilfe.

Mfg Alp

Verfasst: Dienstag 31. März 2009, 20:58
von str1442
Gibts schon, nennt sich "grep" :)

Entweder du nutz os.path.isdir um zu überprüfen, ob ein neuer Pfad (also projects und der Name der Datei / des Ordners) ein Ordner ist und wendest wieder os.listdir darauf an. Oder du nutzt os.walk().

Verfasst: Dienstag 31. März 2009, 21:00
von Alp
Viele Dank :)

Dann schau ich mir mal "grep" an :wink:

Verfasst: Dienstag 31. März 2009, 21:24
von problembär
Und dann soll er im Verzeichnis "projects" in jeder Datei nachschauen ob "import Tkinter" irgendwo in der Datein drinnen steht. Sollte dies der Fall sein, soll der Dateiname angezeigt werden.

Code: Alles auswählen

grep -r "import Tkinter" projects
Interessant ist zusätzlich auch "-i", um Groß-/Kleinschreibung zu ignorieren.

Gruß

Verfasst: Dienstag 31. März 2009, 23:33
von DasIch
str1442 hat geschrieben:Gibts schon, nennt sich "grep" :)
Wenn man Langeweile hat kann man dass doch trotzdem lösen: http://paste.pocoo.org/show/110529/(Der Versuch den Code zu verstehen oder vielleicht sogar nur zu betrachten könnte bei einigen zu erheblichen gesundheitlichen Schäden führen)

Verfasst: Mittwoch 1. April 2009, 09:02
von Leonidas
Und ``functional`` zu implementieren bleibt als zusätzliche Aufgabe für den Leser übrig, ja?

Achja, ich finde für Suche in Quelltexten ack ein gutes Stück angenehmer als grep.

Verfasst: Mittwoch 1. April 2009, 14:31
von DasIch
Leonidas hat geschrieben:Und ``functional`` zu implementieren bleibt als zusätzliche Aufgabe für den Leser übrig, ja?
Sonst wäre es ja zu einfach ;) http://paste.pocoo.org/show/110594/

Verfasst: Mittwoch 1. April 2009, 19:40
von Alp
Ich hätte zum grep noch eine Frage:
Bei mir kommt die Fehlermeldung "access denied"
Woran kann das liegen?

Mfg Alp

Verfasst: Mittwoch 1. April 2009, 19:45
von Hyperion
Alp hat geschrieben:Ich hätte zum grep noch eine Frage:
Bei mir kommt die Fehlermeldung "access denied"
Woran kann das liegen?

Mfg Alp
Du hast wohl keine Berechtigung in das Verzeichnis zu wechseln! (Unpreviligierter Benutzer eben)

Aber ist das wirklich die komplette Fehlermeldung? Ich würde das mal stark bezweifeln ...

Verfasst: Mittwoch 1. April 2009, 19:56
von jens

Verfasst: Mittwoch 1. April 2009, 20:08
von Alp
Hyperion hat geschrieben:
Aber ist das wirklich die komplette Fehlermeldung? Ich würde das mal stark bezweifeln ...
Deine Zweifel sind berechtigt, tut mir Leid:
IOError: [Errno 13] Permission denied 'Python'

(Python ist der Ordner)
Danke, das gefällt mir von den ganzen Scripts am Besten :P

Verfasst: Mittwoch 1. April 2009, 23:08
von problembär
von den ganzen Scripts am besten
Von den ganzen Scripts vielleicht, aber UNIX-"grep", bzw. sein OpenSource-Pendant, ist eines der ausgereiftesten, leistungsfähigsten, optimiertesten und am besten getesteten Tools überhaupt.
Kann man schlecht bestreiten. Man muß nur halt damit umgehen können.

Gruß