Python Notes: Invoke Variables From Scripts in Interactive Mode
目的是从交互环境调用脚本产生的变量, 可用于调试脚本和测试数据等等.
比如当前目录下有一个包含如下内容的脚本:
1 | #!/usr/bin/env python |
方法 1. shell -> interactive mode (推荐)
使用 -i
选项:
1 | # shell |
执行结束随即进入 python 交互环境, 并且保留了脚本中定义的变量:
1 | # python |
方法 2. In ipython / jupyter (第二推荐)
1 | # ipython |
方法 3. In interactive mode
NOTE: Python 3 取消了
execfile()
这个函数! 如今使用exec()
.
1 | # python |
但这之后文件并没有关闭, 虽然多数时候没有影响, 但如果实在要关闭,
建议使用 with
:
1 | # python |
总之十分不方便, 因此不推荐.
对于没有使用
if __name__ == "__main__"
的脚本, 当脚本处在当前目录或
$PYTHONPATH
中时, 也可以有比较方便的办法
(
注意这里因为是调用 module 的形式, 所以不要加 '.py' ):
1 | # python |
补充说明在 python 交互环境中查看当前环境中的变量的方法 (ipython
/ jupyter 使用 %who
, %whos
即可):
1 | dir() # without an argument, return the names in the current scope |