在 Jupyter 中运行 for 循环终端命令

Bil*_*ack 11 python linux shell terminal jupyter-notebook

我知道如何在 Jupyter 中运行命令行:使用 ! 例如,2.jpg在 Python 上运行一个图像文件process.py

! python classify.py --filename /Users/images/2.jpg
Run Code Online (Sandbox Code Playgroud)

问题是,如何在 Jupyter 单元中以迭代方式(idx)处理文件夹的所有文件,如下所示:

for idx in range(10):
    ! python process.py --filename /Users/images/idx.jpg
Run Code Online (Sandbox Code Playgroud)

谢谢

PS:我试过path,没有用:

for i in range(1,10):
    cur_path = '/Users/images/'+str(i)+'.jpg'
    path = os.path.expanduser(cur_path)
    print(i,path)
    ! python process.py --filename path
Run Code Online (Sandbox Code Playgroud)

kra*_*ski 9

不需要子流程或格式。像这样简单的事情:

for idx in range(10):
    !python process.py --filename /Users/images/{idx}.jpg
Run Code Online (Sandbox Code Playgroud)

为我工作。


Ank*_*kan 4

一个可能的黑客解决方案是使用eval并让 bash 执行一个字符串。

for idx in range(10):
    !eval {"python process.py --filename /Users/images/{image}.jpg".format(image=idx)}
Run Code Online (Sandbox Code Playgroud)