다음과 같이 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