- 여러 주피터 노트북을 하나로 병합하는 파이썬 코드
import datetime
import json
import os
## ipynb_file_folder : 주피터 파일 모여있는 폴더 경로
ipynb_file_folder = '/content/drive/MyDrive/Colab Notebooks/ADP'
## get_files: 파일 불러오는 함수
## 이름순 정렬되므로 파일명 0001_abc.ipynb ~등으로 할당
def get_files():
notebooks_to_merge = [file.name for file in os.scandir(ipynb_file_folder) if file.name.endswith('.ipynb') and file.is_file()]
notebooks_to_merge.sort()
print("다음 노트북이 병합됩니다.")
for notebook in notebooks_to_merge:
print(notebook)
return notebooks_to_merge
## merge_notebooks: 노트북 파일 하나로 병합
def merge_notebooks(notebooks, merged_notebook):
with open(ipynb_file_folder+'/'+notebooks[0], mode = 'r', encoding = 'utf-8') as f:
base = json.load(f)
for notebook in notebooks[1:]:
with open(ipynb_file_folder+'/'+notebook, mode = 'r', encoding = 'utf-8') as f:
add = json.load(f)
base['cells'].extend(add['cells'])
with open(merged_notebook, mode='w', encoding='utf-8') as f:
json.dump(base, f)
print(f'병합된 파일: {merged_notebook}')
st = str(datetime.datetime.now()).replace('-','_').replace(' ','_').replace('.','_').replace(':','_')
filename = '/content/drive/MyDrive/Colab Notebooks/ADP/merge.ipynb'
notebooks_to_merge = get_files()
merge_notebooks(notebooks_to_merge, f"{filename}")