内联iPython调用系统

时间:2013-10-28 08:43:10

标签: ipython

我非常喜欢iPython中的use system shell commands。但是我想知道是否可以将调用的返回值循环到例如!ls。这有效:

files = !ls ./*_subcell_cooc.txt
for f in files:
    print f

但这不是:

for f in ( !ls ./*_subcell_cooc.txt):
    print f

错误是:

File "<ipython-input-1-df2bc72907d7>", line 5
   for f in ( !ls $ROOT/*_subcell_cooc.txt):
              ^
SyntaxError: invalid syntax

1 个答案:

答案 0 :(得分:1)

不可能,语法var = !something在IPython中是特殊的。它是有效的python语法,我们将扩展for循环等等。

你可以在你的第一个例子中显示你的任务,但使用glob,os和其他真正的python模块来做这件事会更强大,也不会更难,而且还可以在IPython之外工作......

对于轶事,Guido对于上次在SciPy2013上看到的IPython半shell语法真的不满意。

(请在IPython中大写我。)