注目キーワード

【Python】コマンドライン引数の取得方法

はじめに

Pythonのツールを作るにあたって、Linuxのコマンドみたいにオプションをつけて動作するようにしたかったため、引数の取得方法について調べてみました。

Python 実行時の引数は sys モジュールの argv 属性に文字列を要素とするリストとして格納されます。

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

実装例

実装例はこんな感じになります。

引数を取得する処理について

まず、引数を受け取るためにはsysモジュールをインポートします。

import sys

そして、sysモジュールのargv属性にアクセスします。

args = sys.argv

したのコードでは、受け取った値をそのままコマンドプロンプトに出力しています。

print(args) #引数をすべて表示

そのあとに、ループで引数を1件1件出力しています。

「args」は配列なので配列にインデックスを指定してあげればn番目の引数といった形でほし引数だけ取得することも可能です。

for i in range(len(args)): list_item = args[i] print('{0}:{1}'.format(i, list_item)) #ループして1件1件表示

実行結果

それでは何パターンか引数を指定して実行してみましょう。

Pythonの実行方法についてはこちらに詳しく記載してあります。

工事中

引数なし

まず、実行ファイルが置いてあるフォルダへcdコマンドを使って移動します。今回は実行するファイル「 python argv. py」をあらかじめCドライブの直下のworkフォルダに配置してあります。

cd C:\work

そして、「python 実行したいファイル名」で実行します。今回は引数を与えないで実行するので「python argv.py」と入力してエンターキーを押します。

python argv.py

argvの0番目は実行したファイル名が格納されています。

引数あり

次は、引数あで実行してみます。複数の引数を指定する場合は半角スペースで引数を区切ります。「aa」と「bb」と「cc」を指定したい場合は「aa bb cc」と指定します。

スポンサーリンク

python argv.py aa bb cc

こちらが引数ありの実行結果です。0番目にファイル名が入り、1番以降は指定した順番通りに「aa」、「bb」、「cc」が出力されました。

ループ処理で引数の数も取得しているので引数が何件入っても件数分だけ出力できるようになっています。

まとめ

Pythonで引数を操作するには「 sys モジュール 」をインポートする。

引数は「sys.argv」に配列として格納されている。