오늘 처음 재귀함수를 만들어 보았다. 함수야 만들기 나름이겠지만
큰 틀에서 재귀함수의 용법은 아래와 같이 활용되는 것 같았다.
- 조건을 만족하는 경우 혹은 그 반대의 경우 break를 하는 방식
- for loop 내에서 ifelse문을 통해 재귀적으로 호출하는 방식
나는 하위 폴더가 존재하지 않으면 ls리스트에 디렉토리를 추가하고 그렇지 않으면 하위 폴더에 대해 함수를 적용하는 형식으로 코드를 짰다. 간단하긴해도 유용할 것 같아 해당 코드를 아래와 같이 공유해보고자 한다.
import os,re
path='/home/'
def find_dir(path):
return [f"{path}/{i}" for i in os.listdir(path)
if os.path.isdir(f"{path}/{i}")]
def final_path_update(path,list):
sub_paths=find_dir(path)
for sub_path in sub_paths:
if len(find_dir(sub_path))==0:
list.append(sub_path)
else:
final_path_update(sub_path,list)
ls=list()
final_path_update(path,ls)
def find_final_path(path):
ls=list()
find_final_path_update(path,ls)
return ls
파이썬 코딩 도장: 31.1 재귀호출 사용하기
코딩 도장: 따라하기, 연습하기, 심사하기로 배우는 프로그래밍 철저입문