Sprawdzam, czy katalog istnieje, ale zauważyłem, że os.path.exists
zamiast niego używam os.path.isdir
. Oba działają dobrze, ale jestem ciekawy, jakie są zalety używania isdir
zamiast exists
.
78
os.path.exists
zwróci również, True
jeśli istnieje zwykły plik o tej nazwie.
os.path.isdir
zwróci tylko True
wtedy, gdy ścieżka istnieje i jest katalogiem lub dowiązaniem symbolicznym do katalogu.
os.path.isdir
zwraca prawdę na dowiązaniu symbolicznym.os.path.isdir('.ipynb_checkpoints')
prawdziwieTak jak to brzmi: jeśli ścieżka istnieje, ale jest plikiem, a nie katalogiem,
isdir
zwróciFalse
. Tymczasemexists
powróciTrue
w obu przypadkach.źródło
os.path.isdir () sprawdza, czy ścieżka istnieje i czy jest katalogiem i zwraca wartość TRUE dla przypadku.
Podobnie os.path.isfile () sprawdza, czy ścieżka istnieje i jest plikiem, i zwraca wartość TRUE dla sprawy.
Ponadto os.path.exists () sprawdza, czy ścieżka istnieje i nie dba o to, czy ścieżka wskazuje na plik lub katalog i zwraca wartość TRUE w każdym z przypadków.
źródło
Przez większość czasu jest tak samo.
Ale ścieżka może istnieć fizycznie, podczas gdy
path.exists()
zwraca False. Dzieje się tak, jeśli os.stat () zwraca False dla tego pliku.Jeśli ścieżka istnieje fizycznie,
path.isdir()
zawsze zwróci True. To nie zależy od platformy.źródło
isdir()
nie mogę wiedzieć, czy katalog istnieje.źródło