Skip to content

Instantly share code, notes, and snippets.

@swkeever
Created April 10, 2020 01:16
Show Gist options
  • Save swkeever/969af9974f8a50c55b822ff4eae45021 to your computer and use it in GitHub Desktop.
Save swkeever/969af9974f8a50c55b822ff4eae45021 to your computer and use it in GitHub Desktop.
Utility for batch converting Jupyter Notebooks to PDFs.
import sys
from os import listdir, mkdir, rename
from os.path import isfile, join, exists
import subprocess
if len(sys.argv) < 2:
print('usage: nb_to_pdf.py <folder containing jupyter notebooks>')
exit(1)
folder = sys.argv[1]
if folder.endswith('/'):
folder = folder[:-1]
files = [f for f in listdir(folder) if isfile(join(folder, f)) and f.endswith('.ipynb')]
pdf_folder = '{}/pdfs'.format(folder)
if not exists(pdf_folder):
mkdir(pdf_folder)
for f in files:
nb_name = '{}/{}'.format(folder, f)
pdf_name = f.replace('.ipynb', '.pdf')
cmd = 'jupyter nbconvert --to pdf {}'.format(nb_name).split(' ')
subprocess.check_call(cmd)
rename('{}/{}'.format(folder, pdf_name), '{}/{}'.format(pdf_folder, pdf_name))
@swkeever
Copy link
Author

Requires nbconvert.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment