초기 Data Science Project 폴더 생성 및 tree strcture 확

2021. 4. 24. 14:54꿀팁 분석 환경 설정/파이썬 개발 팁

 

위의 코드에서 일부 수정해서, 초기에 폴더 생성 관련한 코드를 공유한다.

매우 간단하니, 다른 분들도 사용할 때 자기에 프로젝트 상황에 맞게 수정해주시면 될 것 같다.

 

그리고 추가적으로 아래에는 간단하게 트리 구조를 볼 수 있는 코드가 있어 같이 구현해봤다.

 

현재 이 코드는 CMD 창에서 있는 현재 위치에서 생성하는 코드이다.

import os
root = ["src","test","model","data","notebook","output"]
data_sub_node = ["raw","processed"]
notebook_sub_node= ["eda","poc","modeling","evaluation"]
src_sub_node = ["preprocessing","modeling","sampler"]

def make_file(path, file_name="README.md") :
    if os.path.isfile(os.path.join(path, file_name)):
        pass
    else:
        with open(os.path.join(path, file_name), 'w') as fp:
            pass
def make_folder(dir) :
    try :
        os.mkdir(dir)
    except FileExistsError as e :
        pass

for folder in root : 
    make_folder(os.path.join("./",folder))
    make_file(os.path.join("./",folder))    
    
for folder in data_sub_node : 
    make_folder(os.path.join("./data",folder))
    make_file(os.path.join("./data",folder))    
    
for folder in notebook_sub_node : 
    make_folder(os.path.join("./notebook",folder))
    make_file(os.path.join("./notebook",folder))    
    
for folder in src_sub_node : 
    make_folder(os.path.join("./src",folder))
    make_file(os.path.join("./src",folder),"__init__.py")    

exclude_dir = [".git","__pycache__"]

def list_files(startpath,exclude_dir=exclude_dir):
    for root, dirs, files in os.walk(startpath):
        level = root.replace(startpath, '').count(os.sep)
        indent = ' ' * 4 * (level)
        if os.path.basename(root) in exclude_dir :
            continue
        print('{}{}/'.format(indent, os.path.basename(root)))
        subindent = ' ' * 4 * (level + 1)
        for f in files:
            print('{}{}'.format(subindent, f))
            
list_files("./")

 

 

 

 

 

towardsdatascience.com/manage-your-data-science-project-structure-in-early-stage-95f91d4d0600

 

Manage your Data Science project structure in early stage.

Jupyter Notebook (or Colab, databrisk’s notebook etc) provide a very efficient way for building a project in a short time. We can create…

towardsdatascience.com

 

728x90