如何在iPython中将变量作为命令行参数传递?

Fre*_*ica 3 python ipython

例如,我有一个Python模块和一个iPython模块,

cmd.py

import sys
print sys.argv
Run Code Online (Sandbox Code Playgroud)

test.ipynb

for i in range(5):
   %run cmd.py i
Run Code Online (Sandbox Code Playgroud)

当我运行test.ipynb时,它只是多次打印['cmd.py','i'].如何将i的值而不是'i'作为命令行参数传递?

Jea*_*bre 6

shell模式按字面解释所有内容(否则cmd.py也将进行评估).我会这样做:

for i in range(5):
   %run cmd.py $i
Run Code Online (Sandbox Code Playgroud)

来自http://ipython.readthedocs.io/en/stable/interactive/reference.html

IPython还允许您在进行系统调用时扩展python变量的值.在{braces}中换行变量或表达式:

对于简单的情况,您也可以将$添加到变量名称之前