Pythonにコマンドライン引数を渡す方法について解説していきます。
■ コマンドライン引数とは?
コマンドライン(ターミナル)から実行ファイル(今回はPython)に渡す引数
■ sys.argvを使おう!
sys.argvとは
Python標準のコマンドライン引数を扱うモジュール
■ Pythonファイルを用意しよう!
実験用にargsPrint.pyというファイルを作りましょう。
____________________
import sys
# コマンドライン引数を扱うモジュール
args = sys.argv
print(args)
# 渡された引数を1つずつ出力する
for arg in args:
print(arg)
____________________
■ コマンドライン引数を渡して実行してみよう!
コマンドライン引数の渡し方
%渡したいコマンド 引数1 引数2 引数3...
____________________
% python3 argsPrint.py Hello Hi Konnichiwa
['argsPrint.py', 'Hello', 'Hi', 'Konnichiwa']
argsPrint.py
Hello
Hi
Konnichiwa
____________________
■ 応用編:configファイルの設定を読み込み、Pythonに渡そう
今回覚えたことを流用して以下の処理を作ってみましょう!
①configファイルに変数登録
②シェルスクリプトでconfigファイルを読み込み
③コマンドライン引数をPythonに渡す
____________________
■config.ini
NAME=あきぶろぐ
AGE=28
JOB=エンジニア
NOW=`date "+%Y-%m-%d %H:%M:%S"`
____________________
■argsPrintCall.sh
#!/bin/zsh
# ファイルの読み込み。sourceを使っても省略形の"."を使ってもいい
# . ./config.ini
source ./config.ini
python3 argsPrint.py $NAME $AGE $JOB $NOW
____________________
■argsPrint.py
import sys
name = args[1] # $NAME
age = args[2] # $AGE
job = args[3] # $JOB
print("名前:" + name)
print("年齢:" + age)
print("職業:" + job)
print("時刻:" + now)
____________________
■ 実行してみよう!
____________________
% chmod 777 argsPrintCall.sh
% ./argsPrintCall.sh
名前:あきぶろぐ
年齢:28
職業:エンジニア
時刻:2021-06-21 21:29:57
____________________
現場からは以上です👾