코딩도장 심사문제모음

24.4 연습문제 : 파일 경로에서 파일명만 가져오기

codermun 2020. 10. 23. 21:51
728x90
반응형

다음 소스 코드를 완성하여 파일 경로에서 파일명만 출력되게 만드세요. 단, 경로에서 폴더의 깊이가 달라지더라도 파일명만 출력할 수 있어야 합니다.

풀이.1

먼저 split("\\")을 이용해 역슬래쉬를 기준으로 분리하여 임의의 변수에 split을 이용, 리스트를 할당해준다.

['C:', 'Users', 'dojang', 'AppData', 'Local', 'Programs', 'Python', 'Python36-32', 'python.exe']

총 9개의 요소를 가지며 여기서 폴더의 깊이가 달라지더라도 원하고자하는 python.exe는 항상 리스트의 맨뒤에 위치하게되는것을 이용하면 간단히 해결할 수 있다.

1.

path = 'C:\\Users\\dojang\\AppData\\Local\\Programs\\Python\\Python36-32\\python.exe'

a = path.split('\\')

filename = a[-1]

print(filename)

:: 

python.exe

다른풀이방법

filename = path[path.rfind('\\') + 1:]

## 먼저 .rfind 메서드를 이용해서 path 경로의 \\ 를 기준으로 가장 오른쪽에서 의 \\의 인덱스 번호를 찾는다 ( 57)

## 우리가 찾으려하는것은 \\가 아니므로 찾은 \\의 인덱스 번호에서 +1 : (콜론)을 이용해 오른쪽에 위치한 인덱스에서부터 오른쪽 끝까지의

인덱스를 읽어주면

## [58 :] 로 슬라이싱으로 전체 인덱스에서 58~ 마지막까지를 잘라준다(?)는 의미이다.

## 결국, path[58:] 이 되어 python.exe 를 할당하게 된다. (p == path의 58번째 인덱스 번호) 

## 

 

 

 

 

728x90
반응형