os.listdir() trả về tên entry; pathlib.Path.iterdir() trả về Path object (hiện đại, OOP).
os.listdir (cổ điển)
import os
for entry in os.listdir('.'):
full = os.path.join('.', entry)
if os.path.isfile(full):
print(f"File: {entry}")
elif os.path.isdir(full):
print(f"Dir: {entry}")
pathlib (Python 3.4+, khuyến nghị)
from pathlib import Path
for entry in Path('.').iterdir():
if entry.is_file():
print(f"File: {entry.name}")
elif entry.is_dir():
print(f"Dir: {entry.name}")
# Chỉ file .txt
for f in Path('.').glob('*.txt'):
print(f)
Đệ quy: rglob / os.walk
# pathlib
for f in Path('.').rglob('*.py'):
print(f)
# os.walk
for root, dirs, files in os.walk('.'):
for f in files:
print(os.path.join(root, f))