如何将IPython笔记本文件(带有.ipynb
扩展名的json)转换为常规.py
模块?
答案 0 :(得分:52)
从笔记本菜单中,您可以将文件直接保存为python脚本。转到'文件'选项菜单,然后选择下载为'在那里你会看到一个Python(.py)'选项。
另一种选择是从命令行使用nbconvert:
jupyter nbconvert --to script 'my-notebook.ipynb'
看看here。
答案 1 :(得分:15)
根据https://ipython.org/ipython-doc/3/notebook/nbconvert.html,您正在寻找带有--to脚本选项的nbconvert命令。
ipython nbconvert notebook.ipynb --to script
答案 2 :(得分:3)
简而言之:此命令行选项会将mynotebook.ipynb
转换为python
代码:
jupyter nbconvert mynotebook.ipynb --to python
注意:这与above答案不同。 ipython
已重命名为jupyter
。旧的可执行文件名(ipython)已弃用。
更多详情:
jupyter
命令行有一个nbconvert
参数,可帮助将笔记本文件(*.ipynb)
转换为各种其他格式。
您甚至可以使用相同的命令将其转换为这些格式中的任何一种,但使用不同的--to
选项:
相同的命令jupyter nbconvert --to latex mynotebook.ipynb
有关详情,请参阅jupyter nbconvert --help
。有很多选择。您甚至可以在转换之前先执行代码,使用不同的日志级别选项等。
答案 3 :(得分:1)
答案 4 :(得分:1)
你可以用它来做到这一点:
pip install ipynb-py-convert
然后在您的终端上运行它以将 .py 文件转换为 .ipynb :
ipynb-py-convert Ex/abc.py Ex/abc.ipynb
将 .ipynb 文件转换为 .py :
ipynb-py-convert Ex/abc.ipynb Ex/abc.py
答案 5 :(得分:0)
您可以使用以下脚本将jupyter notebook转换为Python脚本,或直接查看代码。
为此,请将以下内容写入文件cat_ipynb
,然后写入chmod +x cat_ipynb
。
#!/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('\n')
elif cell['cell_type'] == 'markdown':
print('# -------- markdown --------')
for line in cell['source']:
print("#", line, end='')
print('\n')
然后您可以使用
cat_ipynb your_notebook.ipynb > output.py
或直接与vi
一起显示
cat_ipynb your_notebook.ipynb | view -
答案 6 :(得分:0)
首先,您需要在下面安装此软件包:
sudo apt install ipython
jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb
两个选项可用--to python或--to = python 我的感觉很好 jupyter nbconvert-to python while.ipynb
jupyter nbconvert --to python while.ipynb
[NbConvertApp]将笔记本while.ipynb转换为python [NbConvertApp]向while.py中写入758个字节
pip3 install ipython
如果它对您不起作用,请通过pip3。
pip3 install ipython
答案 7 :(得分:0)
您绝对可以使用以下命令使用nbconvert来实现:
jupyter nbconvert --to python while.ipynb
但是,由于个人原因,出于以下几个原因,我建议您不要使用它:
因此,总而言之,没有一种好的方法可以立即将python笔记本转换为可维护的,健壮的python模块化代码,唯一的方法是手动进行手术。
答案 8 :(得分:0)
Jupytext允许在命令行上进行这种转换,并且重要的是,您可以再次从脚本返回到笔记本(甚至是已执行的笔记本)。参见here。
答案 9 :(得分:0)
复制所需文件夹中的所有(''.ipynb)文件,然后执行:
import os
desired_path = 'C:\\Users\\Docs\\Ipynb Covertor'
os.chdir(desired_path)
list_of_directory = os.listdir(desired_path)
for file in list_of_directory:
os.system('ipython nbconvert --to script ' + str(file))
答案 10 :(得分:0)
一种方法是将脚本上传到Colab上,然后从File -> Download .py
以.py格式下载脚本。
答案 11 :(得分:0)
您可以在同一目录中运行 .py 文件:
import json
files = ["my_first_file_name.ipynb", "my_second_file_name.ipynb"]
for file in files:
code = json.load(open(file))
py_file = open(f"{file}.py", "w+")
for cell in code['cells']:
if cell['cell_type'] == 'code':
for line in cell['source']:
py_file.write(line)
py_file.write("\n")
elif cell['cell_type'] == 'markdown':
py_file.write("\n")
for line in cell['source']:
if line and line[0] == "#":
py_file.write(line)
py_file.write("\n")
py_file.close()
我根据 Syrtis Major 的回答重写了这段代码。
答案 12 :(得分:0)
将 Ipynb 目录文件转换为 .py
import os
for fname in os.listdir():
if fname.endswith('ipynb'):
os.system(f'jupyter nbconvert {fname} --to python')