Seite 1 von 1

Python projekt konsolenanwendung

Verfasst: Montag 26. Oktober 2009, 19:18
von zahi
Hallo allerseits Ich hab ein Projetk das wie folgt arbeiten soll

eine Konsol-Applikation (d.h. Eingabe über stdin, Ausgabe über stdout in einem Konsol-/Terminalfenster), mit
dem Sie den Inhalt einer Textdatei anzeigen und nach Zeichenketten suchen können.
Es bestehen folgende Anforderungen, die Sie berücksichtigen müssen:

Die Datei soll nach Programmstart aus einer Liste von Dateien ausgewählt werden:
Es sollen Dateien im Startverzeichnis der Anwendung und den dort verhandenen Unterverzeichnissen in

beliebiger Tiefe berücksichtigt werden
Es sollen nur Dateien mit dem Namensmuster "*.txt" berücksichtigt werden

Es soll in der Liste geblättert werden können, wenn nicht alle Dateien gleichzeitig angezeigt werden können
Die Baumstruktur der Unterverzeichnisse soll optisch deutlich gemacht werden

Das Programm befindet sich nach der Dateiauswahl in einem der beiden Zustände „Anzeige“ (Voreinstellung beim
Programmstart) oder „Suche“, die Umschaltung erfolgt durch Anweisungen
Die Anzeige des Programms besteht aus einem Bereich zur zeilenweise Ausgabe der Dateiinhalte (N, z.B. 24,
Zeilen) und einer abschließenden Zeile zur Eingabe von Anweisungen (mit Führungstext)

Die Anzeige erfolgt seitenweise; zur Steuerung stehen die Anweisungen „Anfang“, „Ende“, „Vor“, „Zurueck“ zur
Verfügung (verwenden Sie ggf. abkürzende Schreibweisen, z.B. nur den Anfangsbuchstaben); bei Programmstart
wird direkt die erste Seite angezeigt
Vor jeder Zeile wird die Zeilennummer ausgegeben
Im Zustand „Suche“ werden nach der Eingabe einer Zeichenkette die Zeilen ausgegeben, die den Suchbegriff
enthalten; die Anzeige erfolgt wiederum seitenweise
Der Benutzer beendet das Programm gezielt durch ein Kommando "quit", das im Zustand "Anzeige" ausgewertet
wird.

Eine Liste der Dateien eines Verzeichnisbaums können Sie mit Hilfe der Methode „walk“ im Modul „os“ erstellen (Hinweis:
verwenden Sie nicht die Methode „walk“ des Modu „os.path“). Zur Überprüfung der Dateinamen benötigen Sie hier keine
regulären Ausdrücke, sondern können mit einfachen Stringmethoden wie „endswith“ (Modul „string“) arbeiten.

das ist die aufgaben stellung und hierbei scheiter ich an mangelndes python kenntniss

ich hab ansatzweisse codes progammiert ich weiss nicht ob ich die sinnvoll in zusammen hang bringen kann ...

Code: Alles auswählen

cwd = os.getcwd()

	

for root, dirs, files in os.walk(cwd):
	print files

datei = raw_input (" bitte geben sie die gewünschte datei an ")

	data = file(datei,"w") 

	data.close()

Code: Alles auswählen

   
   #file_o = codecs.open(fileName_spl, 'rU', 'utf-8')

   if fileName_spl.endswith('*.txt'):	

	print " Keine TXT "  

  
   searchText_s = raw_input('Geben Sie den Suchbegriff ein: ')

   if searchText_s.endswith('\r'):

    
      searchText_s = searchText_s[:-1]

 

   for line_s in file_o:

      if line_s.find(searchText_s) >= 0:

         print line_s

   

     
         

   file_o.close() 

Re: Python projekt konsolenanwendung

Verfasst: Montag 26. Oktober 2009, 19:43
von numerix
Und was ist jetzt dein Anliegen?

Verfasst: Montag 26. Oktober 2009, 19:51
von Hyperion
Naja, da kann man Dir schlecht helfen! Du müßtest Dir erst einmal die Grundlagen von Python aneignen.

Die Aufgabenstellung verwirrt mich noch in anderer Hinsicht: Ohne eine TUI-Lib, wie z.B. ncurses, wirst Du nicht weit kommen imho. (Evtl. interpretiere ich in "scrollen" usw. zu viel hinein). Andererseits wird einem die os.walk()-Funktion explizit um die Ohren gehauen - ob man die nicht hätte selber finden können, wenn man die Basics beherrscht?

Dann Deine Code-Snippets... da sind ja zig Leerzeilen drin und im Grunde genommen sind das alles nur kleine Experimentier-Schnipsel, die man so auch in einer Python Shell so hätte zusammen hacken können. Zum Ausprobieren einiger grundlegender Dinge evtl. ok, aber irgend wie kommt es mir so vor, als wärst Du weit davon entfernt, die Funktionsweise zu kapieren!

Generell sieht man keinerlei Datenstrukturen bei Deinen Schnipseln - wie willst Du denn im Programm die Daten verwalten?

Ich sehe auch keine Funktionen! Keinerlei Strukturiereung. (Auch steht aller Code auf Modulebene und es fehlen wichtige imports!)

Also zusammengefasst: Diese Aufgabe ist alles andere als trivial und sicherlich nichts, was man zu Beginn eines Python-Kurses jemanden stellen würde!

Daher kann ich Dir nur raten, dass Du Dir jemanden schnappst, der Python besser beherrscht und Dir die Grundlagen hilft zu vermitteln. Musst Du alleine arbeiten, dann arbeite das offizielle Tutorial durch. Hier im Board gibt es auch zig Threads zum Thema - nutze die Suchfunktion!

Ich sehe da einen weiten Weg vor Dir...

Verfasst: Montag 26. Oktober 2009, 19:53
von zahi
als erstes würde es mir ernorm weiterhelfen wen man mir sagen könnte wie ich die daten die beim os.walk() angezeigt werden bzw die textdaten richtig einlesen kann ink. unterverzeichniss

Verfasst: Montag 26. Oktober 2009, 20:01
von Hyperion
zahi hat geschrieben:als erstes würde es mir ernorm weiterhelfen wen man mir sagen könnte wie ich die daten die beim os.walk() angezeigt werden bzw die textdaten richtig einlesen kann ink. unterverzeichniss
Ähem... das hast Du doch selber vorhin schon gepostet!?! Sorry, aber die Frage bestärkt mich darin, dass Du heil los überfordert bist mit der Aufgabenstellung!

In der Doku gibt es doch sogar Beispiele, die die Verwendung zeigen.

Verfasst: Montag 26. Oktober 2009, 20:20
von /me
zahi hat geschrieben:als erstes würde es mir ernorm weiterhelfen wen man mir sagen könnte wie ich die daten die beim os.walk() angezeigt werden bzw die textdaten richtig einlesen kann ink. unterverzeichniss
Oh, das klingt so, als hättest du die Dokumentation von Python noch nicht gefunden. Schau mal unter http://docs.python.org/library/os.html nach.

Verfasst: Sonntag 1. November 2009, 13:46
von zahi
ich danke euch ich hab es hinge kreigt

Verfasst: Sonntag 1. November 2009, 13:51
von Hyperion
zahi hat geschrieben:ich danke euch ich hab es hinge kreigt
Echt? Bin zugegebener Maßen ein wenig überrascht!

Poste Deinen Code doch mal:
paste.pocco.org