从脚本中的IPython交互式命名空间访问变量
是否有一种简单的方法可以访问IPython交互式命名空间中的变量。在实现一个具有慢速加载命令的项目时,我想运行一个脚本将数据加载到交互式工作空间,然后调用第二个使用数据的脚本,就像使用MATLAB一样 在这个简单的例子中,我想做的是从脚本中的IPython交互式命名空间访问变量,python,ipython,Python,Ipython,是否有一种简单的方法可以访问IPython交互式命名空间中的变量。在实现一个具有慢速加载命令的项目时,我想运行一个脚本将数据加载到交互式工作空间,然后调用第二个使用数据的脚本,就像使用MATLAB一样 在这个简单的例子中,我想做的是 In [20]: a=5 In [21]: run tst 其中tst.py只是 print a 我的想法是,我想运行一次加载脚本,然后在tst.py上工作 谢谢 没有简单或聪明的方法可以做到这一点。一种方法是在测试函数中使用main函数,然后从环境中传入gl
In [20]: a=5
In [21]: run tst
其中tst.py只是
print a
我的想法是,我想运行一次加载脚本,然后在tst.py上工作
谢谢 没有简单或聪明的方法可以做到这一点。一种方法是在测试函数中使用
main
函数,然后从环境中传入globals
,以更新调用者中的globals
。例如:
tst.py
def main(borrowed_globals):
globals().update(borrowed_globals)
print a
然后在iPython:
In [1]: a = 5
In [2]: import tst
In [3]: tst.main(globals())
5
尝试在IPython的magic run命令上使用-i选项;它使脚本使用当前的交互式命名空间运行,例如 load.py:
a = 5
tst.py:
print a
从伊皮顿我得到了
In [1]: from load import *
In [2]: run -i tst
5
伟大的这是避免复制粘贴到ipython的方法。