Pythonでコマンド引数を渡して受け取る方法!(sys.argv)

Python Python

Pythonでコマンドライン引数を渡して、受け取る方法について書いています。
Pythonでプログラムを実行するときに、プログラムファイルの指定と一緒にプログラムに引数を渡すことができます。

引数を受け取るときには、sysモジュールを使って受け取るか、argparseモジュールを使って受け取ることができます。
ここではsysモジュールを使った引数の受け取り方について書いています。

載せているコードについては、Pythonのバージョン3.11.0で動作を確認しています。

コマンドライン引数を渡す

Pythonでプログラムを実行するときに引数を渡すには、実行ファイルパスの後に渡したい引数を半角スペースで並べます。
例えば、下記のように渡すことができます。

$ python3 commandArgs.py apple orange banana

commandArgs.pyファイルの実行をするときに、「apple」・「orange」・「banana」の3つを渡しました。

引数をプログラムで受け取る

sysモジュールを使って引数を受けることができます。
例えば、下記のように受け取ります。

import sys

args = sys.argv
count = len(args) - 1

print(args) # ['commandArgs.py', 'apple', 'orange', 'banana']
print(type(args)) # <class 'list'>
print(count) # 3

最初にsysモジュールをimportしました。

次の処理で、受け取った引数をargs変数に代入しました。
その次に、count変数を作って、引数の数を代入しています。
実行ファイルも引数で渡されるので、len関数でカウントして-1しています。

print関数で引数を出力すると、下記のようにリスト型で引数を受け取っていることが確認できました。

['commandArgs.py', 'apple', 'orange', 'banana']
<class 'list'>
3

リスト型で受け取っているので、リストの0番目からそれぞれの値にアクセスすることができます。
args変数の0番目にファイル名で、その後に渡した引数が続きます。

print(args[0]) # commandArgs.py
print(args[1]) # apple
print(args[2]) # orange
print(args[3]) # banana

関連:【Python入門】リスト(配列)の使い方!(取り出し/追加/削除)

コマンドライン引数の型は?

sysモジュールで受け取った引数はリスト型で渡ってきて、中身は文字列になります。
そのため、下記のように数値を渡した場合でも文字列型になっています。

$ python3 commandArgs.py 100 200 300

数値にしたい場合には変換すると良いです。
例えば、下記のように受け取った値を変換することができます。

number = int(sys.argv[1])
print(type(number)) # <class 'int'>

関連:Pythonで文字列を数値に変換する(int, float)

コメント

タイトルとURLをコピーしました