IPython Notebook Magic具有环境变量的函数

时间:2015-06-24 01:27:36

标签: python ipython ipython-magic

我可以使用具有魔术功能的环境变量,例如writefile in my ipthon notebook吗?

%env WORKING_DIR=/my/path/to/my/file
!echo $WORKING_DIR
  

/我的/路径/到/我/文件

%%writefile $WORKING_DIR/myfile.txt
sometext
  

IOError:[Errno 2]没有这样的文件或目录:'$ WORKING_DIR / myfile.txt'

1 个答案:

答案 0 :(得分:1)

%%writefile $WORKING_DIR/myfile.txt扩展了 Python 变量。所以你需要一个WORKING_DIR python变量来实现这一点。 $FOO仅在您使用弹出的魔法并且获得原始$WORKING_DIR字符串时才用作env变量。在这种情况下, shell 执行变量扩展。

有可能但是错综复杂地做你想做的事,例如下面的例子:

In [1]: foo = 'a.py'

In [2]: %%writefile $foo
   ...: hi
   ...:
Writing a.py

In [3]: %env BAR=b.py
env: BAR=b.py

In [4]: import os

In [5]: %%writefile {os.environ['BAR']}
   ...: this is bar
   ...:
Writing b.py