IPython 带有环境变量的笔记本魔术功能
IPython Notebook Magic Functions with environment variables
我可以使用具有魔法功能的环境变量,例如writefile in my ipthon notebook吗?
%env WORKING_DIR=/my/path/to/my/file
!echo $WORKING_DIR
/my/path/to/my/file
但是
%%writefile $WORKING_DIR/myfile.txt
sometext
IOError: [Errno 2] No such file or directory: '$WORKING_DIR/myfile.txt'
%%writefile $WORKING_DIR/myfile.txt
扩展 Python 变量。所以你需要有一个 WORKING_DIR
python 变量才能工作。 $FOO
仅当您使用 shell 输出的魔法并且获得原始 $WORKING_DIR
字符串时才用作环境变量。在这种情况下 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
我可以使用具有魔法功能的环境变量,例如writefile in my ipthon notebook吗?
%env WORKING_DIR=/my/path/to/my/file
!echo $WORKING_DIR
/my/path/to/my/file
但是
%%writefile $WORKING_DIR/myfile.txt
sometext
IOError: [Errno 2] No such file or directory: '$WORKING_DIR/myfile.txt'
%%writefile $WORKING_DIR/myfile.txt
扩展 Python 变量。所以你需要有一个 WORKING_DIR
python 变量才能工作。 $FOO
仅当您使用 shell 输出的魔法并且获得原始 $WORKING_DIR
字符串时才用作环境变量。在这种情况下 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