Python: コマンドライン引数の取得 – sys.argv変数

コマンドラインで与える引数によってプログラムの挙動を変えたいという場面はよくあります。Python ではコマンドライン引数は sys モジュールの argv 属性に文字列を要素とするリストとして格納されています。そして、リストの先頭要素(sys.argv[0])はスクリプトファイル名となっています。

ソースコード

# coding: Shift_JIS
import sys # モジュール属性 argv を取得するため
argvs = sys.argv  # コマンドライン引数を格納したリストの取得
argc = len(argvs) # 引数の個数
# デバッグプリント
print argvs
print argc
print
if (argc != 2):   # 引数が足りない場合は、その旨を表示
    print 'Usage: # python %s filename' % argvs[0]
    quit()         # プログラムの終了
print 'The content of %s ...n' % argvs[1]
f = open(argvs[1])
line = f.readline() # 1行読み込む(改行文字も含まれる)
while line:
    print line
    line = f.readline()
f.close

text.txt

It is meaningless only to think my long further aims idly.
It is important to set my aims but at the same time I should confirm my present condition.
Unless I set the standard where I am in any level, I'll be puzzled about what I should do from now on.

実行結果

引数を指定しない場合

$ python argv01.py
['argv01.py']
1
Usage: # python SCRIPTNAME.py filename

引数を指定した場合

$ python argv01.py text.txt
['argv01.py', 'text.txt']
2
The content of text.txt ...
It is meaningless only to think my long further aims idly.
It is important to set my aims but at the same time I should confirm my present condition.
Unless I set the standard where I am in any level, I'll be puzzled about what I should do from now on.

リファレンス

コメント

  1. わしぽん より:

    Pythonでコマンドライン引数を取得する方法 / Python: コマンドライン引数の取得 – sys.argv変数 – Yukun's Blog

  2. CentOS上にSkype botをSkype4Pyで構築するメモ | ni5hik0ri より:

    […] twitterを利用したhobbit(xymon)のアラート – (yaruki ykf) => nil Python: コマンドライン引数の取得 – sys.argv変数 […]

  3. [Python]Brainf*ckインタープリタもどき | ギーク志望。 より:

    […] […]

  4. 【Python】システムパラメータの取得について - 俺のまとめサイト より:

    […] メモ。 参考サイトはこちら Python: コマンドライン引数の取得 – sys.argv変数 […]