Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Liệt kê nội dung thư mục trong Python (os.listdir)

os.listdir(path) trả về list tên file/thư mục trong path (không bao gồm . và ..).

Ví dụ

import os
print(os.listdir('.'))
# ['DLLs', 'Doc', 'etc', 'include', 'Lib', 'libs', 'LICENSE.txt', ...]

Chỉ lấy file (bỏ thư mục)

files = [f for f in os.listdir('.') if os.path.isfile(os.path.join('.', f))]
print(files)
# ['LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'w9xpopen.exe']

Chỉ lấy thư mục

dirs = [d for d in os.listdir('.') if os.path.isdir(os.path.join('.', d))]

pathlib (Python 3.4+) — hiện đại hơn

from pathlib import Path
p = Path('.')
list(p.iterdir())           # tất cả
[f for f in p.iterdir() if f.is_file()]   # chỉ file
[d for d in p.iterdir() if d.is_dir()]    # chỉ thư mục
[p.name for p in Path('.').glob('*.py')]  # glob pattern