Nie może być trudne, ale mam blokadę umysłową.
186
import os
os.listdir("path") # returns list
Jednokierunkowa:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
Powyższa glob.glob
metoda nie spowoduje wyświetlenia ukrytych plików.
Ponieważ pierwotnie odpowiedziałem na to pytanie lata temu, pathlib został dodany do Pythona. Mój preferowany sposób wyświetlenia katalogu zwykle obejmuje teraz iterdir
metodę dotyczącą Path
obiektów:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
.XYZ
pliki w kontekście uniksowego systemu plików), gdy jest używany zglob.glob("/home/username/www/.*")
?['c:\\users']
glob.glob(r'c:\users\*')
(glob tak naprawdę nie wyświetla katalogów, ale rozszerza gwiazdki i takie, które spełniają podobne zadanie).os.walk
można użyć, jeśli potrzebujesz rekurencji:źródło
glob.glob
lubos.listdir
zrobi to.źródło
import glob
ENTERglob.glob(r'c:\users')
ENTER wydaje się powracać['c:\\users']
. Dlaczego? Chciałbym użyć glob.glob, ponieważ, jak zauważyli inni użytkownicy, podobno zwraca zawartość katalogu, ignorując jednocześnie ukryte pliki. To jest ważne.glob
:glob.glob(r'c:\users\*')
Do
os
Moduł obsługuje wszystkie te rzeczy.źródło
W Pythonie 3.4+ możesz użyć nowego
pathlib
pakietu:Path.iterdir()
zwraca iterator, który można łatwo przekształcić wlist
:źródło
Od wersji Python 3.5 możesz używać
os.scandir
.Różnica polega na tym, że zwraca wpisy pliku, a nie nazwy. W niektórych systemach operacyjnych, takich jak Windows, oznacza to, że nie musisz
os.path.isdir/file
wiedzieć, czy jest to plik, czy nie, a to oszczędza czas procesora, ponieważstat
jest to już zrobione podczas skanowania w systemie Windows:przykład, aby wyświetlić katalog i wydrukować pliki większe niż
max_value
bajty:(przeczytaj tutaj moją obszerną odpowiedź na temat wydajności )
źródło
Poniższy kod wyświetli katalogi i pliki w katalogu. Drugi to os.walk
źródło