繁体   English   中英

将 python 文件导入 Jupyter Notebook

[英]Import python file to Jupyter Notebook

作为带有扩展名.py 的 python 文件,代码在这样的行中

import requests
import hashlib

x=10
y=20
w=30

z=x+y

print(z)

正如您所注意到的,每个块之间都有一个空行。 如何将这样的 python 代码导入 Jupyter Notebook 以便使单元格中的每个块都像这样在此处输入图像描述

我建议解析您的 *.py 文件并“手动”重新创建 *.ipynb 文件:

  1. 通过在仅存在\n的行处分隔文件来区分块;
  2. 将每个块的行添加到:
{
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    # Here goes your lines
    "x = 2\n",
    "y = 3\n",
    ]

  1. 把所有东西放在一起之后:
}
"cells": [
  {# Block 1},
  {# Block 2},
  ...
  {# Block N},
]
}

例子

with open('py_file.py') as py_file:
    blocks = []
    next_block = []
    for line in py_file:
        if line == '\n':
            blocks.append(next_block)
            next_block = []
            pass
        else:
            next_block.append(line.strip())

cells = '''{\n  "cells": [\n'''
for i, block in enumerate(blocks):
    cells += '''  {\n   "cell_type": "code",\n'''
    cells += f'''    "execution_count": {i+1},\n'''
    cells += '''    "metadata": {},\n    "outputs": [],\n'''
    cells += '''    "source": [\n'''
    for line in block:
        cells += f'''    "{line}\\n",\n'''
    cells += '''    ]\n'''
    
cells += ' ]\n}'

print(cells)打印

{
  "cells": [
  {
   "cell_type": "code",
    "execution_count": 1,
    "metadata": {},
    "outputs": [],
    "source": [
    "import requests\n",
    "import hashlib\n",
    ]
  {
   "cell_type": "code",
    "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
    "x=10\n",
    "y=20\n",
    "w=30\n",
    ]
  {
   "cell_type": "code",
    "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
    "z=x+y\n",
    ]
 ]
}

尝试这个;

使用Ctrl + Entercell mode运行代码,例如在Jupyter Notebook中,您可以使用#%%# %%

代码语法

#%%
import requests
import hashlib
#%%
x=10
y=20
w=30
#%%
z=x+y
#%%
print(z)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM