오늘 처음 재귀함수를 만들어 보았다. 함수야 만들기 나름이겠지만

큰 틀에서 재귀함수의 용법은 아래와 같이 활용되는 것 같았다.

  1. 조건을 만족하는 경우 혹은 그 반대의 경우 break를 하는 방식
  2. 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 재귀호출 사용하기
코딩 도장: 따라하기, 연습하기, 심사하기로 배우는 프로그래밍 철저입문