프로그래밍/C, C++, Java, Python

Python Path.info 사용법

포도알77 2026. 8. 1. 12:04

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.

Python 3.14부터는 pathlib.Path.info로 파일 종류 판별용 정보를 캐시와 함께 다룰 수 있습니다. 디렉터리를 순회하면서 항목별로 파일, 디렉터리, 심볼릭 링크를 나눠 처리해야 할 때 유용하지만, 최신 상태를 다시 확인해야 하는 코드에는 기본값으로 쓰기보다 주의해서 써야 합니다.

Python 공식 문서에 따르면 Path.infoPathInfo 객체를 돌려주며, 파일 종류 질의 결과를 내부적으로 캐시할 수 있습니다. 또 Path.iterdir()로 만든 경로 객체는 부모 디렉터리를 스캔할 때 얻은 파일 종류 정보로 일부 초기화될 수 있습니다.

Path.info는 언제 쓰면 되나

핵심은 같은 경로에 대해 파일 종류 분기만 여러 번 해야 하는 경우입니다. 공식 문서는 이 객체의 메서드가 결과를 캐시할 수 있어 파일 종류를 기준으로 분기할 때 시스템 호출 수를 줄이는 데 도움이 될 수 있다고 설명합니다.

예를 들어 디렉터리 순회 결과를 바로 분류하는 코드는 Path.info와 잘 맞습니다.

from pathlib import Path

for entry in Path("src").iterdir():
    if entry.info.is_symlink():
        print("symlink", entry.name)
    elif entry.info.is_dir():
        print("dir", entry.name)
    elif entry.info.exists():
        print("other", entry.name)
    else:
        print("missing", entry.name)

이 패턴은 이미 순회 과정에서 얻은 파일 종류 정보를 재활용할 가능성이 있다는 점이 장점입니다. 반대로 단일 경로 한두 개를 검사하는 코드라면 기존의 Path.is_dir(), Path.is_file(), Path.is_symlink()만으로도 충분한 경우가 많습니다.

무엇을 주의해야 하나

가장 중요한 점은 캐시가 최신 상태를 보장하지 않는다는 점입니다. 공식 문서는 최신 정보를 가져오려면 Path.info의 메서드보다 Path.is_dir(), Path.is_file(), Path.is_symlink()를 직접 호출하는 편이 낫다고 안내합니다.

Path.info 캐시를 초기화하는 API는 없습니다. 문서가 제시하는 방법은 새 경로 객체를 다시 만드는 것입니다. 즉, 검사 시점이 바뀌었거나 외부 프로세스가 파일 상태를 바꿀 수 있는 코드라면 p = Path(p)처럼 새 객체를 만들고 다시 확인하는 편이 안전합니다.

정리하면 Path.info는 순회 직후의 분기 처리에는 적합하지만, 감시 대상 경로의 상태가 바뀔 수 있는 장기 실행 코드나 재검증 단계의 기본 수단으로 쓰기에는 보수적으로 접근하는 편이 맞습니다.

 

 

Path.info와 기존 메서드는 어떻게 나눠 쓰면 되나

선택 기준은 단순합니다.

  • 디렉터리 순회 직후 여러 번 파일 종류를 분기해야 하면 Path.info가 잘 맞습니다.
  • 지금 시점의 실제 파일 상태가 중요하면 Path.is_dir(), Path.is_file(), Path.is_symlink()를 직접 호출하는 쪽이 더 명확합니다.
  • Python 3.13 이하 환경과 함께 써야 하면 Path.info는 사용할 수 없습니다. 이 속성은 Python 3.14에서 추가됐습니다.

FAQ

Path.info를 읽기만 해도 파일 시스템 조회가 발생하나

공식 문서는 Path.info 속성에 접근하는 것만으로는 파일 시스템 질의가 발생하지 않는다고 설명합니다. 실제 질의 여부는 이후 어떤 메서드를 호출하느냐와 객체가 이미 가진 정보에 따라 달라질 수 있습니다.

Path.info 결과를 초기화할 수 있나

공식 문서 기준으로 캐시를 재설정하는 전용 API는 없습니다. 새 경로 객체를 만들어 비어 있는 info 캐시로 다시 시작하는 방식이 권장됩니다.

모든 종류 판별을 Path.info로 통일해도 되나

그렇게 단정하기는 어렵습니다. Python 문서가 최신 상태 확인이 필요할 때는 Path.is_dir(), is_file(), is_symlink() 직접 호출을 권하는 만큼, 재검증 단계에서는 기존 메서드가 더 안전한 기본값입니다.

반응형
페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사