기술 · 실용 가이드
Pathlib가 숨김 파일을 계속 찾나요? 결과를 거르지 말고 walk를 가지치기하세요
결과 필터는 Python이 디렉터리에 들어간 뒤 실행됩니다. hidden 정책을 먼저 정하고 top-down으로 가지치기한 다음 방문하지 않은 트리를 증명하세요.

Pathlib는 점으로 시작하는 이름을 자동 제외하지 않으며 glob은 dot name을 매치할 수 있습니다. glob.glob에는 별도의 include_hidden이 있습니다. rglob 결과를 나중에 버려도 디렉터리와 하위 항목 탐색은 이미 일어났습니다.
POSIX dot prefix, Windows hidden attribute, 애플리케이션 cache 중 무엇을 hidden으로 볼지 먼저 정합니다. top-down walk에서 dirnames를 줄이고, 파일은 따로 필터링하며 visited, skipped, symlink, error ledger를 남깁니다.
hidden 계약부터 작성
root, platform, Python version, 목적을 기록하고 dot 규칙, Windows attribute, build/vendor 제외를 별도로 정의합니다.
플랫폼 메타데이터를 확인하지 않는 단일 문자 검사를 cross-platform이라고 부르지 마세요.
진입 전에 디렉터리 가지치기
Python 3.12+에서는 root.walk(top_down=True)를 사용하고 허용할 이름만 dirnames[:]에 되돌립니다. 제거된 subtree에는 들어가지 않습니다.
이전 버전은 os.walk(topdown=True)에서 같은 패턴을 씁니다. 변수 재할당이 아니라 목록 제자리 수정이 필요합니다.
파일 필터와 glob 차이 분리
디렉터리를 가지치기한 뒤 같은 정책으로 파일을 검사해 .DS_Store 같은 leaf를 제외합니다.
glob.glob을 쓸 때 include_hidden을 기록하세요. ** 재귀는 큰 트리에서 비쌀 수 있습니다.
Windows 속성과 symlink 명시
Windows에서는 지원되는 metadata 호출로 FILE_ATTRIBUTE_HIDDEN을 확인합니다. dot convention과 OS attribute는 다른 신호입니다.
directory symlink는 기본적으로 따르지 말고, 필요하면 stable identity로 중복을 거부합니다.
acceptance manifest 작성
on_error에서 path, operation, exception을 기록하고 permission error를 failure, incomplete, allowed skip 중 하나로 분류합니다.
manifest에 root, policy version, visited/yielded count, skip reason, symlink policy, error를 넣고 작은 fixture로 회귀 테스트합니다.
