考えられるハックな解決策は、 eval を使用することです bash に文字列を実行させます。
for idx in range(10):
!eval {"python process.py --filename /Users/images/{image}.jpg".format(image=idx)}
glob を使用 モジュールとおそらく subprocess ! の代わりに .シンプルな glob.glob("path/*.jpg") すべての画像を繰り返し処理できます。
from glob import glob
from subprocess import check_call
for i in glob("/Users/images/*.jpg"):
print("Processing:", i)
check_call(["python", "process.py", "--filename", i], shell=False)
! の使用 または eval 決して良い考えではありません - コマンドは黙って失敗するかもしれません.
! ターミナルで次のコードが実行されることを単に示します。
したがって、1 つのオプションは、bash でステートメントをコーディングすることです。 Python ほど簡単ではありませんが、次のように同じタスクを実行できます。
! for file in /Users/images/*.jpg; do python process.py --filename /Users/images/$i; done
これは for ループですが、Python の for ループではありません。
または、process.py のソース コードに戻ることを検討してください。 ディレクトリ内のファイルをループするように変更します。これは os.listdir で簡単に実行できます 関数。
サブプロセスやフォーマットは必要ありません。次のような簡単なもの:
for idx in range(10):
!python process.py --filename /Users/images/{idx}.jpg
「vagrant up」すると、「お使いのマシンは NFS をサポートしていないようです」と表示されます (Debian jessie)
node-sass をインストールできないため、gulp-sass をインストールできません