in Verzeichnis nach String suchen

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
Alp
User
Beiträge: 7
Registriert: Freitag 4. Juli 2008, 18:37

Dienstag 31. März 2009, 20:45

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
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Dienstag 31. März 2009, 20:58

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().
Alp
User
Beiträge: 7
Registriert: Freitag 4. Juli 2008, 18:37

Dienstag 31. März 2009, 21:00

Viele Dank :)

Dann schau ich mir mal "grep" an :wink:
problembär

Dienstag 31. März 2009, 21:24

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ß
DasIch
User
Beiträge: 2480
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Dienstag 31. März 2009, 23:33

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)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 1. April 2009, 09:02

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
DasIch
User
Beiträge: 2480
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Mittwoch 1. April 2009, 14:31

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/
Alp
User
Beiträge: 7
Registriert: Freitag 4. Juli 2008, 18:37

Mittwoch 1. April 2009, 19:40

Ich hätte zum grep noch eine Frage:
Bei mir kommt die Fehlermeldung "access denied"
Woran kann das liegen?

Mfg Alp
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 1. April 2009, 19:45

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 ...
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 1. April 2009, 19:56


CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Alp
User
Beiträge: 7
Registriert: Freitag 4. Juli 2008, 18:37

Mittwoch 1. April 2009, 20:08

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
problembär

Mittwoch 1. April 2009, 23:08

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ß
Antworten