当前位置:网站首页>Call (import) in Jupiter notebook ipynb . Py file
Call (import) in Jupiter notebook ipynb . Py file
2022-07-08 01:24:00 【Bosong】
Catalog
(1) preservation XX.ipynb file
(2) establish Ipynb_importer.py file
(3) Where the main function is created .ipynb file
In order to ensure the simplicity and good scalability of the code , Instead of a file filled with hundreds of lines of code, I moved myself , It's better to divide the detachable part into several documents for later understanding by yourself and others .
1. call XX.py file
Guarantee XX.py Files and operation files are in one directory , Then in the operation file import XX( perhaps from XX import *), Then call XX Functions you need in func Or class class——XX.func()( perhaps func()).
2. call XX.ipynb file
2.1 direct method
hold XX.ipynb Derivation .py file (File– download as– Python(.py)), reference 1. Medium method , call .
Applicable conditions : call 1 individual or No more than 3 individual .ipynb file
2.2 indirect method
(1) preservation XX.ipynb file
(2) establish Ipynb_importer.py file
The code is as follows :
import io, os,sys,types
from IPython import get_ipython
from nbformat import read
from IPython.core.interactiveshell import InteractiveShell
# The main class
class NotebookFinder(object):
"""Module finder that locates Jupyter Notebooks"""
def __init__(self):
self.loaders = {}
def find_module(self, fullname, path=None):
nb_path = find_notebook(fullname, path)
if not nb_path:
return
key = path
if path:
# lists aren't hashable
key = os.path.sep.join(path)
if key not in self.loaders:
self.loaders[key] = NotebookLoader(path)
return self.loaders[key]
def find_notebook(fullname, path=None):
"""find a notebook, given its fully qualified name and an optional path
This turns "foo.bar" into "foo/bar.ipynb"
and tries turning "Foo_Bar" into "Foo Bar" if Foo_Bar does not exist."""
name = fullname.rsplit('.', 1)[-1]
if not path:
path = ['']
for d in path:
nb_path = os.path.join(d, name + ".ipynb")
if os.path.isfile(nb_path):
return nb_path
# let import Notebook_Name find "Notebook Name.ipynb"
nb_path = nb_path.replace("_", " ")
if os.path.isfile(nb_path):
return nb_path
class NotebookLoader(object):
"""Module Loader for Jupyter Notebooks"""
def __init__(self, path=None):
self.shell = InteractiveShell.instance()
self.path = path
def load_module(self, fullname):
"""import a notebook as a module"""
path = find_notebook(fullname, self.path)
print ("importing Jupyter notebook from %s" % path)
# load the notebook object
with io.open(path, 'r', encoding='utf-8') as f:
nb = read(f, 4)
# create the module and add it to sys.modules
# if name in sys.modules:
# return sys.modules[name]
mod = types.ModuleType(fullname)
mod.__file__ = path
mod.__loader__ = self
mod.__dict__['get_ipython'] = get_ipython
sys.modules[fullname] = mod
# extra work to ensure that magics that would affect the user_ns
# actually affect the notebook module's ns
save_user_ns = self.shell.user_ns
self.shell.user_ns = mod.__dict__
try:
for cell in nb.cells:
if cell.cell_type == 'code':
# transform the input to executable Python
code = self.shell.input_transformer_manager.transform_cell(cell.source)
# run the code in themodule
exec(code, mod.__dict__)
finally:
self.shell.user_ns = save_user_ns
return mod
# Call the main function
sys.meta_path.append(NotebookFinder())Just put it in our working directory Ipynb_importer.py file , You can call all jupyter notebook file .
The essence of this method is to use a jupyter notenook The parser checks .ipynb File parsing , Load each module in the file into memory for others python A file called .
(3) Where the main function is created .ipynb file
import Ipynb_importer
from XX import *Applicable conditions : Call multiple .ipynb file
.ipynb It still takes some trouble to call files of the same type , But now that I have chosen TA, Mostly for TA Don't you think it's better to spend some time TA Love >_<
Ha ha ha , Finish the above sentence , Suddenly realize that today is also Valentine's day —— Take care of what you love , Accompany your loved ones , May everyone find that TA, Happy Valentine's Day **ヽ(°▽°)ノ*
边栏推荐
- Know how to get the traffic password
- 2022 high voltage electrician examination skills and high voltage electrician reexamination examination
- Taiwan Xinchuang sss1700 latest Chinese specification | sss1700 latest Chinese specification | sss1700datasheet Chinese explanation
- Leetcode notes No.7
- Frequency probability and Bayesian probability
- Parade ps8625 | replace ps8625 | EDP to LVDS screen adapter or screen drive board
- Recommend a document management tool Zotero | with tutorials and learning paths
- 3. MNIST dataset classification
- USB type-C mobile phone projection scheme | USB type-C docking station scheme | TV / projector type-C converter scheme | ag9300ag9310ag9320
- 2022 safety officer-c certificate examination summary and safety officer-c certificate reexamination examination
猜你喜欢

2021-03-06 - play with the application of reflection in the framework

Four digit nixie tube display multi digit timing

Chapter 16 intensive learning

Y59. Chapter III kubernetes from entry to proficiency - continuous integration and deployment (III, II)

2022 low voltage electrician examination content and low voltage electrician simulation examination question bank

2021 welder (primary) examination skills and welder (primary) operation examination question bank

130. 被围绕的区域

For the first time in China, three Tsinghua Yaoban undergraduates won the stoc best student thesis award

5. Over fitting, dropout, regularization

HDMI to VGA acquisition HD adapter scheme | HDMI to VGA 1080p audio and video converter scheme | cs5210 scheme design explanation
随机推荐
2021-03-06 - play with the application of reflection in the framework
Basic realization of line graph
How to transfer Netease cloud music /qq music to Apple Music
Guojingxin center "APEC education +" Shanghai Jiaotong University Japan Cooperation Center x Fudan philosophy class "Zhe Yi" 2022 New Year greetings
解决报错:npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
Understanding of sidelobe cancellation
2022 high altitude installation, maintenance and demolition examination materials and high altitude installation, maintenance and demolition operation certificate examination
Apt get error
130. 被围绕的区域
2022 new examination questions for crane driver (limited to bridge crane) and question bank for crane driver (limited to bridge crane) operation examination
Kaptcha generates verification code on Web page
Chapter XI feature selection
Su embedded training - Day9
5. Discrete control and continuous control
Authorization code of Axure rp9
133. Clone map
General configuration title
Generic configuration legend
2022 high voltage electrician examination skills and high voltage electrician reexamination examination
How to write mark down on vscode