我非常喜欢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
答案 0 :(得分:1)
不可能,语法var = !something
在IPython中是特殊的。它是不有效的python语法,我们将不扩展for循环等等。
你可以在你的第一个例子中显示你的任务,但使用glob,os和其他真正的python模块来做这件事会更强大,也不会更难,而且还可以在IPython之外工作......
对于轶事,Guido对于上次在SciPy2013上看到的IPython半shell语法真的不满意。
(请在IPython中大写我。)