Dieser Fehler tritt auf, wenn Sie os.listdir
auf einem Pfad verwenden, der sich nicht auf einen vorhandenen Pfad bezieht.
Zum Beispiel:
>>> os.listdir('Some directory does not exist')
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
WindowsError: [Error 3] : 'Some directory does not exist/*.*'
Wenn Sie os.listdir
verwenden mögen, müssen Sie die Existenz des Pfades garantieren, die Sie verwenden würden, oder os.path.exists
verwenden, um die Existenz zuerst zu überprüfen.
if os.path.exists('/client_side/'):
do something
else:
do something
Angenommen, Ihr aktuelles Arbeitsverzeichnis c:\foobar
ist, os.listdir('/client_side/')
-os.listdir('c:/client_side')
entspricht, während os.listdir('client_side/')
zu os.listdir('c:/foobar/client_side')
entspricht.Wenn sich das Verzeichnis client_side nicht im Stammverzeichnis befindet, tritt ein solcher Fehler auf, wenn os.listdir
verwendet wird.
Für Ihre 0 ouput Problem, lassen Sie uns os.listdir(path)
Return a list containing the names of the entries in the directory given by path. The list is in arbitrary order. It does not include the special entries '.' and '..' even if they are present in the directory.
und os.path.isfile(path)
erinnern. weder
Return True if path is an existing regular file. This follows symbolic links, so both islink() and isfile() can be true for the same path.
listdir
kehrt die absoluten Pfade noch relative Pfade, sondern eine Liste der Namen der Dateien, während isfile
Pfad erfordert. Daher würden alle diese Namen False
ergeben.
Um den Pfad zu erhalten, können wir entweder os.path.join
verwenden, Concat zwei Strings direkt.
print ([name for name in os.listdir(path)
if os.path.isfile(os.path.join(path, name))])
Oder
print ([name for name in os.listdir('client_side/')
if os.path.isfile('client_side/' + name)])
Ich frage mich nur, ob das etwas mit dem '/' in Windows zu tun hat! Im Idealfall sollten Sie unter Windows so etwas haben wie 'os.path.join ('C:', 'client_side')' – GodMan