我想做如下的事情:
In[1]: name = 'long_name_to_type_every_now_and_then.py'
In[2]: %run name
但这实际上试图运行'name.py'
,这不是我想要做的。
有没有一种通用的方法可以将变量转换为字符串?
类似于以下内容:
In[3]: %run %name%
最佳答案
IPython 用 $name
扩展变量,bash 风格。 所有魔法都是如此,而不仅仅是%run
。
所以你会这样做:
In [1]: filename = "myscript.py"
In [2]: %run $filename
['myscript.py']
myscript.py 包含:
import sys
print(sys.argv)
通过 Python 的花哨字符串格式,您甚至可以将表达式放入 {}
:
In [3]: args = ["arg1", "arg2"]
In [4]: %run $filename {args[0]} {args[1][-2:]}
['myscript.py', 'arg1', 'g2']
关于python - 如何将变量传递给 IPython 中的魔术“运行”函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14409167/