当前位置:网站首页>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 **ヽ(°▽°)ノ*
边栏推荐
- Frequency probability and Bayesian probability
- 2022 high voltage electrician examination skills and high voltage electrician reexamination examination
- On the concept and application of filtering in radar signal processing
- Y59. Chapter III kubernetes from entry to proficiency - continuous integration and deployment (III, II)
- 130. 被圍繞的區域
- Blue Bridge Cup embedded (F103) -1 STM32 clock operation and led operation method
- Gnuradio 3.9 using OOT custom module problem record
- About how USRP sets the sampling frequency below the minimum sampling frequency reached by the hardware
- 3. MNIST dataset classification
- Guojingxin center "APEC education +" Shanghai Jiaotong University Japan Cooperation Center x Fudan philosophy class "Zhe Yi" 2022 New Year greetings
猜你喜欢
Blue Bridge Cup embedded (F103) -1 STM32 clock operation and led operation method
Vscode is added to the right-click function menu
Get started quickly using the local testing tool postman
For the first time in China, three Tsinghua Yaoban undergraduates won the stoc best student thesis award
Ag9310 same function alternative | cs5261 replaces ag9310type-c to HDMI single switch screen alternative | low BOM replaces ag9310 design
Vs code configuration latex environment nanny level configuration tutorial (dual system)
Several frequently used OCR document scanning tools | no watermark | avoid IQ tax
The beauty of Mathematics -- the principle of fine Fourier transform
Two methods for full screen adaptation of background pictures, background size: cover; Or (background size: 100% 100%;)
High quality USB sound card / audio chip sss1700 | sss1700 design 96 kHz 24 bit sampling rate USB headset microphone scheme | sss1700 Chinese design scheme explanation
随机推荐
50MHz generation time
Know how to get the traffic password
y59.第三章 Kubernetes从入门到精通 -- 持续集成与部署(三二)
2022 R1 fast opening pressure vessel operation test question bank and R1 fast opening pressure vessel operation free test questions
Su embedded training - Day6
2021 tea master (primary) examination materials and tea master (primary) simulation test questions
HDMI to VGA acquisition HD adapter scheme | HDMI to VGA 1080p audio and video converter scheme | cs5210 scheme design explanation
130. Zones environnantes
2021 welder (primary) examination skills and welder (primary) operation examination question bank
3. MNIST dataset classification
2022 free test questions of fusion welding and thermal cutting and summary of fusion welding and thermal cutting examination
Overall introduction of the project
The solution of frame dropping problem in gnuradio OFDM operation
2021-03-14 - play with generics
Transportation, new infrastructure and smart highway
Vscode is added to the right-click function menu
Su embedded training - Day7
133. 克隆图
Cs5261type-c to HDMI alternative ag9310 | ag9310 alternative
Frrouting BGP protocol learning