Pythonのコマンドライン引数(sys.argv編)

Pythonのスクリプトで何かの処理をするときに、スクリプトにコマンドラインから引数を与えたいことがあります。 例えば、処理の対象になるファイル名を指定するとか、スイッチやオプションの指定などですね。

sysモジュールのargv変数

sysモジュールのargv変数が、スクリプトのコマンドライン引数のリストになります。

L = sys.argv
変数 内容
L コマンドライン引数のリスト

リストのインデックス0は、スクリプトの名前です。

試してみます。

こんなスクリプトを作ってみました。

import sys

arguments = sys.argv

print(arguments)

このスクリプトをarg_trial.pyという名前で保存して、実行してみます。 実行環境は、Windows10のPython3.6です。

# 引数が無い場合
C:\>python arg_trial.py
['arg_trial.py']

# 引数が1つ
C:\>python arg_trial.py 123
['arg_trial.py', '123']

# 引数が2つ
C:\>python arg_trial.py 123 abc
['arg_trial.py', '123', 'abc']

# スペースを含む引数
C:\>python arg_trial.py 123 abc "123 abc"
['arg_trial.py', '123', 'abc', '123 abc']

# シングルクォートで括った場合
C:\>python arg_trial.py 123 abc '123 abc'
['arg_trial.py', '123', 'abc', "'123", "abc'"]

# バックスラッシュ(¥)を含む引数
C:\>python arg_trial.py 123\abc
['arg_trial.py', '123\\abc']

# ダブルクォーテーションで括ってみた
C:\>python arg_trial.py "123\abc"
['arg_trial.py', '123\\abc']

広告

Pythonのコマンドライン引数カテゴリの投稿