我可以使用具有魔术功能的环境变量,例如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'
答案 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