Импортируйте .py файл в Jupyter Notebook построчно - PullRequest
0 голосов
/ 29 ноября 2018

Я предпочитаю писать свой код на VSCode из-за его функций intellisense и автозаполнения.Но я бы предпочел увидеть и отладить код на ноутбуке Jupyter, чтобы лучше визуализировать данные, с которыми я работаю.

Я знаю, что могу загрузить любой файл в Jupyter, используя магические команды %load или %loadpy,Но они загружают весь файл в одну ячейку.

Поскольку я хотел видеть промежуточные результаты определенных операций, я хотел бы импортировать файл таким образом, чтобы каждая строка в файле присваивалась ячейке в записной книжке.Если это не функция или условный оператор (другими словами, что-нибудь с отступом);в этих случаях следует добавить весь блок в одну ячейку.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Вы можете создать новый файл блокнота Jupyter программно с помощью модуля nbformat.Позвольте мне продемонстрировать все шаги с рабочим кодом.

Ниже приведены ячейки в блокноте Jupyter.В этой ячейке есть волшебная команда, которая создает файл с именем script001.py.

%%writefile script001.py
x = 10
print('x is: %s' % x)
y = 20
print('y is: %s' % y)
z = x+y
print('z is: %s' % z)

. Код во второй ячейке ниже создает новый блокнот с именем split_cells.ipynb.

import nbformat as nbf

# create notebook object
nb2 = nbf.v4.new_notebook()

# prep cells' content for the new notebook
code = []
with open('script001.py') as fi:
    for aline in fi:
        code.append(aline.rstrip())

# take each line of code as single cells
nb2['cells'] = [nbf.v4.new_code_cell(ea) for ea in code]

# name of notebook to create
fname = 'split_cells.ipynb'

# create new notebook file
with open(fname, 'w') as fj:
    nbf.write(nb2, fj)

.Когда вы откроете новую записную книжку, split_cells.ipynb, у вас будут такие ячейки:

In[]: x = 10

In[]: print('x is: %s' % x)

In[]: y = 20

In[]: print('y is: %s' % y)

In[]: z = x+y

In[]: print('z is: %s' % z)

Эта записная книжка готова к работе по вашему усмотрению.Надеюсь, это поможет.

0 голосов
/ 29 ноября 2018

AFAIK, это невозможно сделать, загрузив файл в блокнот Jupyter.Тем не менее, вы можете легко разделить вашу большую ячейку на несколько ячеек, используя Ctrl + Shift + -.Это разделит вашу ячейку в том месте, где находится курсор в это время.

Я не знаю, насколько велики ваши файлы, но это действительно быстрый и эффективный способ разделения ячеек, так что, возможно, это сработаетдля вас =)

...