在IPython3中替换execfile?

时间:2017-11-24 20:22:29

标签: python python-3.x ipython execfile

有多种方法可以为Python 3.x环境重新启用类似execfile的行为 - 在文档中和stackoverflow上,但我没有找到我的用例的确切替换。

我正在使用IPython,并且在Python 2.7.x execfile中用于运行脚本文件,就像我直接在IPython中输入完全相同的行一样。这包括:

  1. 给出了有用的异常回溯
  2. 我的环境的局部变量在脚本代码中可用
  3. 脚本中本地定义的变量在环境中可用(当然,在execfile调用之后)
  4. 脚本中的
  5. import X as Y语句也使Y在环境中可用
  6. execfile调用在交互模式下工作,也直接在python脚本中工作
  7. 每次调用都保证执行整个脚本代码(除非遇到异常)
  8. execfile随时可用于Python - 没有冗长的定义或导入模糊包
  9. 迄今尚未完全奏效的常见解决方案:

    • from scriptfile import *不满足#2和#4。对于函数定义,它也失败#6,因为重新发布导入不会更新函数 - 这可以通过reload(scriptfile)调用来解决。
    • exec(scriptfilehandle.read())结构满足#5-7。通过一些修改也可以处理#2-4 - 但这会演变成一个冗长的定义,我现在无法回想起来,并且追溯仍然是一团糟。
    • IPython' s %run scriptfile很不错,但至少在要求#2,#4和#5上不足。
    • 从文件中复制脚本代码并使用IPython' s %paste在#5和#7上排除 - 并且每次调用都非常麻烦。

    你有任何我还没有听说过的解决方案吗?

    我正在使用IPython + execfile同时玩数据,生成(很多)matplotlib数字,尝试的东西,...... 如果我喜欢我编写的一些代码,我会将代码片段放在脚本中。我正在做的一些例子:

    • 编写一个为特定数据集准备环境的脚本:执行导入,加载一些数据,定义一些有用的函数来处理这个数据集,......
    • 半自动绘图:精心设计的脚本,用于精美地绘制局部变量中保存的十个数据,然后修改绘图脚本,重新执行,然后过滤数据,重新执行绘图脚本,... < / LI>
    • 编写一个利用我的几个较小片段的脚本,在大型数据集上一夜之间运行
    • 除了数据探索和绘图之外,有时我需要在各种系统上编写小脚本:RasPi,带OpenWRT的路由器,没有Internet访问权限的计算机,Windows机器(没有管理员权限) - 所有这些都可能有他们的对可用库的限制

    另一方面,我不得不承认,我不是一名专业的程序员 - 我对Python在本地/全局变量中的内部运作以及真正发生的事情的见解在import声明中,非常有限。

    任何帮助 - 可能是我的问题的解决方案或有用的解释 - 非常感谢!

0 个答案:

没有答案