使用nbconvert时如何将图像导出到文件夹

时间:2018-09-05 13:43:04

标签: python python-3.x ipython jupyter-notebook nbconvert

我正在尝试使用nbconvert应用程序将笔记本导出到乳胶文件。创建了tex,但存在以下问题。

  1. 图像是base64二进制。我希望它们自动以与源笔记本文件名相同的名称写为文件夹中的文件。我们有什么选择吗?
  2. 生成的tex文件中图像的引用位于同一文件夹中。我如何使nbconvert api将其引用到我在上面的第1点中告诉的文件夹?为此,转换后无法考虑任何解决方法。搜索在tex中引用的每个文件并更改其路径将很麻烦。 nbconvert中的一个选项将非常有帮助。

代码:

sourcefile = "test.ipynb"  # file to be converted

with open(sourcefile) as nb_file:
    nb_contents = nb_file.read()

import nbformat
# Convert using the ordinary exporter
notebook = nbformat.reads(nb_contents, as_version=4)

# create a configuration object to extract figures as files
from traitlets.config import Config
c = Config()
c.LatexExporter.preprocessors = ['nbconvert.preprocessors.ExtractOutputPreprocessor']

# ref: https://nbconvert.readthedocs.io/en/latest/nbconvert_library.html#Quick-overview
# 1. Import the exporter
from nbconvert import LatexExporter

# 2. Instantiate the exporter. 
latex_exporter = LatexExporter(config=c)
latex_exporter.template_file = 'ipy2tex_converter.tplx'

# 3. Process the notebook we loaded earlier
(body, resources) = latex_exporter.from_notebook_node(notebook)

# 4. write the tex file
import ntpath
foldername = ntpath.basename(sourcefile).split('.ipynb')[0]
basename = foldername +'.tex'
with open(basename, 'w') as output_file:
    output_file.write(body)

代码link

0 个答案:

没有答案