次のようにPythonスクリプトを複数回実行するためにbash forループを作成しようとしています。
for i from 1 to 10 do
arg1 = 'path/to/directory1'
arg2 = 'path/to/directory2'
script.py arg1 arg2 arg3 arg4
done
arg1
そして、arg2
時間が経っても一貫性を保つ静的経路なので簡単です。しかし、私が持っているCSVから得られた値arg3
はarg4
、arg3とarg4がその行に応じて各反復ごとに変更されることを望みます。
したがって、このようなCSVの場合
400 Steve
401 Jack
402 John
403 Jim
404 Jane
405 Joe
406 Bob
407 Richard
408 Eric
409 Tim
410 Marie
したがって、ループの最初の反復は次のようになります。
script.py path/to/directory1 path/to/directory2 400 Steve
答え1
CSVファイルのすべての行を読み取って処理するには、while
ループを使用できます。
arg1='path/to/directory1'
arg2='path/to/directory2'
while IFS=, read -r arg3 arg4; do
script.py "$arg1" "$arg2" "$arg3" "$arg4"
done < file.csv
答え2
(echo "column1,column2"; cat file.csv) |
csv-exec -- script.py path/to/directory1 path/to/directory2 %column1 %column2