コマンドライン引数の扱いがよく分からなかったので調べるためにサンプルプログラムを作成
コマンドラインからコマンドに引数を渡す際の挙動で、分かり難い状況🤔があったのでそれを調べるためにPythonでサンプルプログラムを作成してみました。
コマンドライン引数の扱いは、通常なら単にスペースで区切られているだけなので特に調べる必要はないんですけどね。ただ、ワイルドカードなどシェル補完がある場合の扱いがどうなるのかはちゃんと調べておきたいところ。それとシングルクォート、ダブルクォートを複数組み合わせて使うような場合とか。
作ったサンプルプログラムは以下に示した通り。
すると以下のように1つずつコマンドライン引数が分離されて出力されます。
argv[0]にはスクリプトファイル名が入ってるだけで引数を調べる上では必要ないため、サンプルプログラムではそれは出力されないようにしています
とりあえずこれを元にいろいろ調べてみようかなと思います😉
Amazon プログラミング関連書籍など
コマンドライン引数の扱いは、通常なら単にスペースで区切られているだけなので特に調べる必要はないんですけどね。ただ、ワイルドカードなどシェル補完がある場合の扱いがどうなるのかはちゃんと調べておきたいところ。それとシングルクォート、ダブルクォートを複数組み合わせて使うような場合とか。
作ったサンプルプログラムは以下に示した通り。
import sys
l = len(sys.argv)
for i in range(l) :
if i == 0:
continue
print("argv{0} = {1}".format(i, sys.argv[i]))
以上をtest01.pyとして保存して次のようにコマンドライン引数をいくつか渡して実行
$ python3 test01.py test1 test2 test3
すると以下のように1つずつコマンドライン引数が分離されて出力されます。
argv1 = test1
argv2 = test2
argv3 = test3
argv[0]にはスクリプトファイル名が入ってるだけで引数を調べる上では必要ないため、サンプルプログラムではそれは出力されないようにしています
とりあえずこれを元にいろいろ調べてみようかなと思います😉
Amazon プログラミング関連書籍など
コメント
コメントを投稿