problem

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
lapac
User
Beiträge: 5
Registriert: Dienstag 29. April 2014, 07:27

Guten Tag Ich wollte alle Dateien im aktuellen Verzechnis auflisten. Dies habe ich auch getan. Ich wollte nun aber Falls keine Dateien vorhanden sind Eine Textausgabe ausführen. Diese wird aber nicht gezeigt. wo ist der Fehler? wäre nett wenn mir jmd helfen könnte. hier mal das Prog:

Code: Alles auswählen

import os 
verzeichnis = os.listdir(os.getcwd())

for file in verzeichnis:
   if file is None:  
   print("Keine Dateien vorhanden!")
        if len(file) > 2 and len(file) < 6:  
        print(file)
Vielen Dank schonmal im vorraus.
MfG
Zuletzt geändert von Hyperion am Donnerstag 1. Mai 2014, 10:12, insgesamt 1-mal geändert.
Grund: Code in Python-Code-Tags gesetzt.
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Die Variable verzeichnis liefert eine leere Liste zurück, falls keine Dateien/Verzeíchnisse vorhanden sind.
Ich nehme mal an, dein Code ist im Original syntaktisch korrekt, len(file) gibt dir die Länge des Namens zurück, was du sicher weißt, aber Bereichabfragen sehen leserbarer aus, wenn man sie auch so formuliert 2 < len(file) < 6.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
lapac
User
Beiträge: 5
Registriert: Dienstag 29. April 2014, 07:27

erstmal danke für die Formatierung.:)
Das Problem ist ja das er mir nichts sagt falls keine Dateien mit der Bedingung vorhanden sind.
Das Programm hört dann halt einfach auf.
Ich würde gerne das er mir das dann sagt und aufhört.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

lapac hat geschrieben: Ich würde gerne das er mir das dann sagt und aufhört.
Die Synatx stimmt übrigens nicht, wie man oben sieht. Ich habe Deinen Code lediglich mit den entsprechenden Code-Tags umhüllt. (Bitte benutze diese in Zukunft, wenn Du Code postest - sonst geht, wie gesehen, die EInrückung verloren!)

Wenn Du eine Rückmeldung auf das Scheitern der Bedingung haben willst, dann musst Du diese einfach implementieren! Du brauchst einfach einen ``else``-Zweig ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
georgebaker
User
Beiträge: 25
Registriert: Freitag 12. April 2013, 19:53

Wie darktrym bereits meinte, ist die Variable verzeichnis eine Liste und eine leere Liste wird als False bezeichnet.

Laut PEP 8 -- Style Guide for Python Code kann man es einfach so überprüfen:

Code: Alles auswählen

Yes: if not seq:
     if seq:

No: if len(seq)
    if not len(seq)
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

lapac hat geschrieben:Das Problem ist ja das er mir nichts sagt falls keine Dateien mit der Bedingung vorhanden sind.
Du prüfst das ja auch nirgendwo. Oder welche deiner Codezeilen hältst du für die Prüfung?
Antworten