[Python-de] Probleme mit os.listdir() und samba; BUG?

Carl Kleffner cmkleffner at gmx.de
Wed May 28 15:41:39 EDT 2003


> 
> Wie prüfst Du denn, ob das Verzeichnis da ist? Wenn os.listdir keinen
> Fehler produziert, obwohl das Verzeichnis nicht existiert, halte ich
> es für möglich, dass auch os.stat keinen Fehler liefert - dass es also
> schlichtweg keine Möglichkeit gibt, herauszufinden, dass es dieses
> Verzeichnis *nicht* gibt.
> 
> Was passiert denn, wenn Du in dir.exe auf die entsprechenden Pfade
> aufrufst?
> 
> Ciao,
> Martin
> 

Hier die Antwort:

existierender Pfad:    m:\RL  
Test mit falscher Schreibweise (lowercase) auf
Samba Laufwerk:

1) unter der Console:
dir m:\rl
Datenträger in Laufwerk M: ist test1
Datenträgernummer: 71E6-07A6

Verzeichnis von m:\

Datei nicht gefunden

2) Python-2.2.1: os.stat
>>> os.stat("m:\\rl")
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
OSError: [Errno 2] No such file or directory: 'm:\\rl'

3) Python-2.2.1: os.path.isdir
>>> os.path.isdir("m:\\rl")
0

4) Python-2.2.1: os.listdir
>>> os.listdir("m:\\rl")
[]

Wie man sieht wirft os.stat eine Exception,  os.path.isdir
liefert den korrekten Wert, aber os.listdir erzeugt 
eine leere Liste.
Übrigens liefer os.listdir bei jedem nicht existierenden
Samba Pfad eine leere Liste!!!

Es sollte aber folgende exception erzeut werden: Bsp:
>>> os.listdir("c:\\rl")                 # <-- Windows Laufwerk C
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
WindowsError: [Errno 3] Das System kann den angegebenen Pfad 
nicht finden: 'c:\\rl/*.*'

Das Fehlverhalten von os.listdir() bei Samba Laufwerken ist 
meiner Meinung nach ein Python Bug.

Carl

PS:
Man beachte, das os.stat und os.listdir unterschiedliche 
Exceptions produzieren (ERRNO 2 und ERRNO 3).

-- 
+++ GMX - Mail, Messaging & more  http://www.gmx.net +++
Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage!





More information about the Python-de mailing list