1 분 소요

1. 개요

저는 VScode에서 ipynb 파일을 사용하여 공부할 때가 많습니다. 제가 공부한 내용을 정리하여 블로그에 올리려고 했는데 ipynb는 정상적으로 올라가지 않더라고요. 그래서 저는 코드 마무리에 마크다운으로 변환하는 코드를 작성하여 마크다운으로 변환시켜 올리기 위해 알아봤습니다.

2. 라이브러리 설치

from nbconvert import MarkdownExporter
import nbformat

먼저 nbconvert 라이브러리의 MarkdownExporter 클래와 nbformat을 가져옵니다.

nbconvert는 주피터 노트북 파일을 다른 형식으로 사용하는 데 유용한 도구입니다. MarkdownExporter 클래스는 주피터 노트북을 마크다운 형식으로 변환하는 기능을 제공합니다.

nbformat은 주피터 노트북의 내부 데이터 구조를 다루기 위한 라이브러리 입니다. 이 라이브러리를 사용해서 주피터 노트북 파일을 읽고 쓰고 조작할 수 있습니다.

3. 함수 생성

def convert_notebook_to_markdown(notebook_path, output_path):
    # 주피터 노트북 파일 로드
    with open(notebook_path, 'r', encoding = 'utf-8') as f:
        nb = nbformat.read(f, as_version = 4) # as_version : 노트북의 버전을 지정하는 매개변수
    
    # 마크다운 변환기 생성
    md_exporter = MarkdownExporter()
    
    # 마크다운으로 변환
    (body, resources) = md_exporter.from_notebook_node(nb)
    
    # 마크다운 파일 저장
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write(body)

마크다운으로 변환하기 위한 함수를 생성했습니다. 입력 매개변수로는 notebook_path와 output_path를 받고 있습니다. notebook_path는 주피터 노트북의 파일 경로를 나타내고 output_path는 변환된 마크다운 파일을 저장하기 위한 경로입니다.

  • 함수는 다음과 같이 작동합니다.

notebook_path 경로에 있는 노트북 파일을 불러와 읽습니다. 그리고 파싱하여 nb 객체로 불러온 다음 마크다운 변환기를 생성합니다. 그 후 마크다운 변환기로 nb 객체를 마크다운으로 변환시킵니다. 그 후 저장합니다.

4. 파일 변환 및 저장

# 변환할 노트북 파일 경로와 저장할 마크다운 파일 경로 지정
notebook_path = 'path/to/notebook.ipynb'
output_path = 'path/to/output.md'

# 노트북을 마크다운으로 변환
convert_notebook_to_markdown(notebook_path, output_path)

위의 양식처럼 변환할 노트북 파일 경로와 저장할 마크다운 파일 경로를 지정하고 변환시키면 됩니다.

댓글남기기