我可以在我的 ipthon 笔记本中使用具有诸如 writefile 之类的魔法功能的环境变量吗?
%env WORKING_DIR=/my/path/to/my/file
!echo $WORKING_DIR
/我的/路径/到/我的/文件
但
%%writefile $WORKING_DIR/myfile.txt
sometext
IOError:[Errno 2] 没有这样的文件或目录:'$WORKING_DIR/myfile.txt'
我可以在我的 ipthon 笔记本中使用具有诸如 writefile 之类的魔法功能的环境变量吗?
%env WORKING_DIR=/my/path/to/my/file
!echo $WORKING_DIR
/我的/路径/到/我的/文件
但
%%writefile $WORKING_DIR/myfile.txt
sometext
IOError:[Errno 2] 没有这样的文件或目录:'$WORKING_DIR/myfile.txt'
%%writefile $WORKING_DIR/myfile.txt
扩展Python变量。所以你需要有一个WORKING_DIR
python 变量才能工作。仅当您使用可以输出的魔术并获得原始字符串$FOO
时,才可以用作 env 变量。$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