Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 주어진 경로 목록에서 가장 긴 공통 디렉터리 경로 찾기

이 튜토리얼에서는 주어진 경로 리스트에서 가장 긴 공통 디렉터리 경로를 찾는 프로그램을 작성해 보겠습니다. 문제를 더 명확하게 이해하기 위해 먼저 예시를 살펴보겠습니다.

입력 예시

paths = ['home/tutorialspoint/python', 'home/tutorialspoint/c', 'home/tutorialspoint/javascript',
'home/tutorialspoint/react', 'home/tutorialspoint/django']

출력 결과

home/tutorialspoint

위 예시에서 다섯 개의 경로가 모두 공유하는 가장 긴 공통 디렉터리는 'home/tutorialspoint'입니다. Python에서는 os 모듈을 활용하면 이 문제를 아주 간단하게 해결할 수 있습니다.

해결 방법 단계

  • os 모듈을 임포트합니다.
  • 공통 경로를 찾을 경로 리스트를 초기화합니다.
  • os.path.commonprefix(paths) 함수로 모든 경로의 공통 접두사(prefix)를 구합니다.
  • os.path.dirname(common_prefix) 함수로 공통 접두사에서 디렉터리 부분만 추출합니다.

전체 코드

# os 모듈 임포트
import os

# 경로 리스트 초기화
paths = ['home/tutorialspoint/python', 'home/tutorialspoint/c', 'home/tutorialspoint/javascript',
         'home/tutorialspoint/react', 'home/tutorialspoint/django']

# 모든 경로의 공통 접두사 찾기
common_prefix = os.path.commonprefix(paths)

# 공통 접두사에서 디렉터리 추출
longest_common_directory = os.path.dirname(common_prefix)

# 가장 긴 공통 경로 출력
print(longest_common_directory)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

home/tutorialspoint

마무리

이처럼 os 모듈의 commonprefix와 dirname 함수 두 개만 활용하면 별도의 알고리즘 구현 없이도 가장 긴 공통 디렉터리 경로를 손쉽게 구할 수 있습니다. 참고로 os.path.commonprefix는 문자열 기준으로 동작하기 때문에, 파일명까지 포함된 경로에서 정확한 디렉터리 단위의 공통 경로가 필요하다면 os.path.dirname으로 마지막 요소를 제거하는 과정이 꼭 필요합니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.