python - 将 Google Colab 笔记本转换为 PDF/HTML?
问题描述
我想知道 Google Colab 中是否有一种方法可以很好地整理输出,就像 R 中的 Markdown 以及如何将 IPython Notebook 转换为 pdf 和 html 格式?
我的输出由多个表格、图表等组成。我希望最好将它们漂亮地打印到一个文件中,其中的某些部分足以在报告中使用。如果没有这样的方法,最好的选择是什么?
解决方案
您还可以使用 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(" ", "_")}"
除了使用魔法来运行 nbconvert 您还可以使用subprocess
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
推荐阅读
- python - 将两个字典放入单个字典
- android - Android XML:具有匹配父布局的 Android 中的垂直 Seekbar 无法正常工作
- java - cmake java 演示项目无法使用我的 MANIFEST.MF 创建“jar”
- c# - 类在控制器中没有无参数构造函数异常
- binary - 如何在 MIPS 机器代码中将负数转换/编码为立即数
- apache-kafka - 是否有与 AWS Kinesis Firehose 对应的 Kafka?
- html - HTML5 音频样式
- css - Bootstrap 4 - 跨列排列元素容器以具有相等的高度
- django - Django2.2 部分数据,除非指定端口(ERR CONTENT LENGTH MISMATCH)
- python-3.x - ElementNotVisibleException:消息:尝试通过 Selenium 和 Python 单击按钮时出现元素不可交互错误