スクリプトは、正確に3 つのコマンドライン引数を渡した場合にのみ機能します。例えば:
script.py 1 2 3
これ以外の数のコマンドライン引数を使用することはできません。そうしないと、aValueError
が発生します。
first
おそらく、受け取った引数の数を確認し、名前、second
、および を適切に割り当てることによって、スクリプトをもう少し堅牢にする必要がありthird
ます。
以下はデモンストレーションです。
from sys import argv, exit
argc = len(argv) # Get the number of commandline arguments
if argc == 4:
# There were 3 commandline arguments
script, first, second, third = argv
elif argc == 3:
# There were only 2 commandline arguments
script, first, second = argv
third = '3rd'
elif argc == 2:
# There was only 1 commandline argument
script, first = argv
second = '2nd'
third = '3rd'
elif argc == 1:
# There was no commandline arguments
script = argv[0]
first = '1st'
second = '2nd'
third = '3rd'
else:
print "Too many commandline arguments"
exit(1)
print "The script is called:", script
print "Your first variable is:", first
print "Your second variable is:", second
print "Your third variable is:", third
もちろん、これはほんの一例です。if ステートメント内で必要なことは何でも実行できます (名前を別のものに割り当てる、例外を発生させる、メッセージを出力する、スクリプトを終了するなど)。ここで重要な部分はargc = len(argv)
、スクリプトが受け取った引数の数をチェックする行と if ステートメントです。