关于python:将json ipython notebook(.ipynb)转换为.py文件

convert json ipython notebook(.ipynb) to .py file

如何将IPython笔记本文件(带有.ipynb扩展名的json)转换为常规.py模块?


从笔记本菜单中,您可以将文件直接保存为python脚本。转到菜单的"文件"选项,然后选择"下载为",您将看到'Python(.py)'选项。

enter image description here

另一种选择是从命令行使用nbconvert:

1
jupyter nbconvert --to script 'my-notebook.ipynb'

看看这里。


根据https://ipython.org/ipython-doc/3/notebook/nbconvert.html,您正在寻找带有--to script选项的nbconvert命令。

1
ipython nbconvert notebook.ipynb --to script


简而言之:此命令行选项将mynotebook.ipynb转换为python代码:

jupyter nbconvert mynotebook.ipynb --to python

注意:这与上面的答案不同。 ipython已重命名为jupyter。旧的可执行文件名(ipython)已弃用。

更多细节:
jupyter命令行有一个nbconvert参数,可帮助将笔记本文件(*.ipynb)转换为各种其他格式。

您甚至可以使用相同的命令将其转换为这些格式中的任何一种,但使用不同的--to选项:

  • asciidoc
  • 习惯
  • HTML
  • 胶乳。 (如果你想在会议/期刊论文中粘贴代码,真棒)。
  • 降价
  • 笔记本
  • PDF格式
  • Python
  • RST
  • 脚本
  • 幻灯片。 (Whooh!转换为幻灯片以便于演示??)

相同的命令jupyter nbconvert --to latex mynotebook.ipynb

有关更多信息,请参阅jupyter nbconvert --help。有很多选择。您甚至可以在转换之前首先执行代码,使用不同的日志级别选项等。


  • 转到https://jupyter.org/
  • 点击nbviewer
  • 输入文件的位置并进行渲染。
  • 单击视图作为代码(显示为)

  • 首先,您需要在下面安装此包装:

    1
    2
    sudo apt install ipython
    jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb

    两个选项是可用的 - 到python或--to = python
    我的工作很好:
    jupyter nbconvert - 到python while.ipynb

    1
    jupyter nbconvert --to python while.ipynb

    [NbConvertApp]将笔记本while.ipynb转换为python
    [NbConvertApp]将758个字节写入while.py

    1
    pip3 install ipython

    如果它不起作用,请尝试通过pip3。

    1
    pip3 install ipython

    您可以使用以下脚本将jupyter notebook转换为Python脚本,或直接查看代码。

    为此,请将以下内容写入文件cat_ipynb,然后写入chmod +x cat_ipynb

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/env python
    import sys
    import json

    for file in sys.argv[1:]:
        print('# file: %s' % file)
        print('# vi: filetype=python')
        print('')
        code = json.load(open(file))

        for cell in code['cells']:
            if cell['cell_type'] == 'code':
                print('# -------- code --------')
                for line in cell['source']:
                    print(line, end='')
                print('
    '
    )
            elif cell['cell_type'] == 'markdown':
                print('# -------- markdown --------')
                for line in cell['source']:
                    print("#", line, end='')
                print('
    '
    )

    然后你可以使用

    cat_ipynb your_notebook.ipynb > output.py

    或直接用vi显示

    cat_ipynb your_notebook.ipynb | view -