-
24.4 연습문제 : 파일 경로에서 파일명만 가져오기코딩도장 심사문제모음 2020. 10. 23. 21:51728x90
다음 소스 코드를 완성하여 파일 경로에서 파일명만 출력되게 만드세요. 단, 경로에서 폴더의 깊이가 달라지더라도 파일명만 출력할 수 있어야 합니다.
풀이.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'코딩도장 심사문제모음' 카테고리의 다른 글
25.7 연습문제 : 평균점수구하기(dictionary이용) (0) 2020.10.26 24.5 심사문제 : 특정 단어 개수 세기 (0) 2020.10.24 23.7 지뢰찾기(어려움..) (0) 2020.10.18 23.6 연습문제 3차원 리스트 만들기 (0) 2020.10.15 22.10 심사문제 2의 거듭제곱 리스트 생성하기 (0) 2020.10.14