2015年7月13日 11:00
Pythonで学ぶ 基礎からのプログラミング入門 (8) ユーザーからプログラムへの入力をする方法
print(len(sys.argv))
これを実行すると以下のようになります。
% python test.py taro
[’test.py’, ’taro’]
2
% python test.py taro jiro
[’test.py’, ’taro’, ’jiro’]
3
sys.argvをprintしているのでわかると思いますが、これは「リスト」です。そのリストの中の最初の要素は必ずPythonの実行プログラムとなります。今回は同じディレクトリのプログラムを相対パスで呼び出したのでファイル名だけですが、絶対パスなどで呼び出すと要素も絶対パスとなります。
2番目以降の要素はコマンドライン引数に与えられた入力値と対応します。上記例を見てもらうとわかりますが、引数のn番目がsys.argvのn+1番目の要素になっていますね。sys.argvはリストですので、その長さはlen()関数で取得できます。それほど難しくないと思うので、さっそく先ほどの生徒の成績を取得するプログラムをコマンドライン引数に対応させてみます。
import sys
# 誤った入力値の場合はメッセージとともにプログラム中断
if(len(sys.argv)