Bash配列をPythonスクリプトに渡す

Bash配列をPythonスクリプトに渡す

problem_listbash配列をPythonスクリプトに送信するのに問題がありますupdate_contest.py。これは私のコードです。

バッシュファイル:

echo $problems
declare -a problem_list
for i in $problems;
do
    problem_list+=($i)
done
echo ${problem_list[@]}
python3 update_contest.py $id ${problem_list[@]}

Pythonファイル:

id = (sys.argv)[1]
problem_list = (sys.argv)[2]
print(problem_list)

ターミナル出力:

A B C D E
A B C D E
A

ご覧のとおり、AのみがProblem_listのパラメータとして渡されます。

ベストアンサー1

引数リストを2にインデックス付けするので、2番目の要素である最初の引数のみが返されます。

このproblem_list = (sys.argv)[2]行をproblem_list = sys.argv[2:-1]

https://docs.python.org/3/library/sys.html

おすすめ記事