nad*_*pez 72 python ipython ipython-magic
我想做类似以下的事情:
In[1]: name = 'long_name_to_type_every_now_and_then.py'
In[2]: %run name
Run Code Online (Sandbox Code Playgroud)
但这实际上是试图运行'name.py',这不是我想要做的.
是否有将变量转换为字符串的一般方法?
类似于以下内容:
In[3]: %run %name%
Run Code Online (Sandbox Code Playgroud)
min*_*nrk 112
IPython使用$namebash-style 扩展变量.这对所有魔法都是如此,而不仅仅是%run.
所以你会这样做:
In [1]: filename = "myscript.py"
In [2]: %run $filename
['myscript.py']
Run Code Online (Sandbox Code Playgroud)
myscript.py包含:
import sys
print(sys.argv)
Run Code Online (Sandbox Code Playgroud)
通过Python的花式字符串格式,您甚至可以将表达式放在{}:
In [3]: args = ["arg1", "arg2"]
In [4]: %run $filename {args[0]} {args[1][-2:]}
['myscript.py', 'arg1', 'g2']
Run Code Online (Sandbox Code Playgroud)
Dav*_*ver 10
使用get_ipython()去的电流的基准InteractiveShell,然后调用magic()方法:
In [1]: ipy = get_ipython()
In [2]: ipy.magic("run foo.py")
ERROR: File `u'foo.py'` not found.
Run Code Online (Sandbox Code Playgroud)
编辑看到minrk的答案 - 这是一个更好的方法.
| 归档时间: |
|
| 查看次数: |
23683 次 |
| 最近记录: |