【问题标题】:IPython Notebook Magic Functions with environment variables带有环境变量的 IPython Notebook 魔术函数
【发布时间】:2015-06-24 01:27:35
【问题描述】:

我可以使用具有魔术功能的环境变量,例如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] 没有这样的文件或目录:'$WORKING_DIR/myfile.txt'

【问题讨论】:

    标签: python ipython ipython-magic


    【解决方案1】:

    %%writefile $WORKING_DIR/myfile.txtPython 变量进行扩展。所以你需要有一个WORKING_DIR python 变量才能工作。 $FOO 仅当您使用一个可以输出的魔法并得到一个原始的$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
    

    【讨论】:

    • 这就是我的想法,但无法弄清楚“{}”包装。谢谢
    • {smth} 和 $smth 是相同的,除了 $smth 仅适用于 [a-zA-Z0-9_] IIRC 中的 smth
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多