Python – コマンドライン引数の取得
2009年9月24日 2:03 AM by Abalone




Python でコマンドラインツールを作る場合などには必須となるだろう、コマンドライン引数の取得方法である。
Python でコマンドライン引数参照するには、sysモジュールのargvを参照すればよい。


#!/usr/bin/python

import sys

for arg in sys.argv:
    print arg,

こんな感じのコードを作成して、argv.py として保存。引数をいくつか適当に与え、実行してみる。まずは、実行属性を付加して直接実行。


bash-3.2$ chmod a+x ./argv.py
bash-3.2$ ./argv.py arg1 arg2 arg3
./argv.py arg1 arg2 arg3

ここでは、arg1, arg2, arg3 と、引数を3個渡している。sys.argvから順次引き取ってきて出力されている。
ここで、”./argv.py”自体がsys.argvに含まれていることに注意。sys.argvの最初の要素は自分のスクリプト名である。

では、Pythonインタプリタに引数としてスクリプトのファイル名を引き渡して実行するとどうなるか。


bash-3.2$ python argv.py arg1 arg2 arg3
argv.py arg1 arg2 arg3

実行結果は上の通り、Pythonインタプリタに引数としてスクリプトのファイル名を引き渡した際には、インタプリタ名である”python”は含まれず、スクリプト名がsys.argvの最初の要素となる。
これは、スクリプトに実行属性を付加して直接実行したときと同様な動作なので、ここは気にする必要はないということのようだ。

なお、上のコードを確認した際に使用したのは、Mac OS X 10.6上のPython 2.6.1である。他のバージョンのPythonだとどういう動作になるかは確認していないので悪しからず。





トラックバックURL


この記事に対するコメント/トラックバックはまだありません


コメントをどうぞ

お名前(必須)
Eメールアドレス(公開されません)(必須)