将 Google Colab 笔记本转换为 PDF/HTML?
Posted
技术标签:
【中文标题】将 Google Colab 笔记本转换为 PDF/HTML?【英文标题】:Convert Google Colab notebook to PDF / HTML? 【发布时间】:2020-06-30 02:16:09 【问题描述】:我想知道 Google Colab 中是否有一种方法可以很好地整理输出,就像 R 中的 Markdown 以及如何将 IPython Notebook 转换为 pdf 和 html 格式?
我的输出由多个表格、图表等组成。我希望将它们漂亮地打印到一个文件中,其中的某些部分足以在报告中使用。如果没有这样的方法,最好的选择是什么?
【问题讨论】:
你的意思是创建一个“文本”单元格吗? @norok2 嗨,我想以一种很好的方式将我所有的 Google Colab 结果集中输出。 您在 Google Colab 中使用的不是 Jupyter Notebook 吗? @AMC 在我看来,Google Colab 在 Jupyter 中没有某些功能。 【参考方案1】:您可以保存/导出 IPython 笔记本(菜单:File
/Download .ipynb
),然后使用 Jupyter 保存为 PDF。
【讨论】:
嗨,谢谢。你的意思是说谷歌Colab没有办法,反正我必须通过IPython Notebook输出? 我认为没有其他简单的方法可以满足您的需求。【参考方案2】:您还可以使用 nbconvert 在 colab 中创建 pdf。
!apt update
!apt install texlive-xetex texlive-fonts-recommended texlive-generic-recommended
import re, pathlib, shutil
# Get a list of all your Notebooks
notebooks = [x for x in pathlib.Path("/content/drive/My Drive/Colab Notebooks").iterdir() if
re.search(r"\.ipynb", x.name, flags = re.I)]
for i, n in enumerate(notebooks):
print(f"\nProcessing [i+1:len(str(len(notebooks)))d/len(notebooks)] n.name\n")
# Optionally copy your notebooks from gdrive to your vm
shutil.copy(n, n.name)
n = pathlib.Path(n.name)
!jupyter nbconvert "n.as_posix()" --to pdf --output "n.stem.replace(" ", "_")"
你也可以使用subprocess
而不是使用魔法来运行 nbconvert
s = subprocess.Popen(shlex.split(
f'jupyter nbconvert "n.as_posix()" --to pdf --output "n.stem.replace(" ", "_")"'
), shell = False, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
s.wait()
s.stdout.read()
如果您使用非常复杂的模板,还有更多关于 xetex 的软件包可用。
sudo apt install pandoc nbconvert texlive texlive-latex-extra texlive-generic-extra
【讨论】:
以上是关于将 Google Colab 笔记本转换为 PDF/HTML?的主要内容,如果未能解决你的问题,请参考以下文章
pip 安装了 google.colab,现在无法在 Jupyter 笔记本上运行代码