1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

今さら聞けない sys.argvとは(Python)

Last updated at Posted at 2024-08-09

今回は,よく登場する「sys.argv」とは何なのか,またその使用例も交えて紹介していきます.

sys.argvとは

コマンドラインでPythonを実行する際にコマンドライン引数を扱えるようにするものです.
例えば,test.pyというファイルを実行する際,下記の様な引数を指定することを考えます.

python test.py -m arg1 arg2

ここで指定されたtest1.py,-m,arg1,arg2がリスト形式で,sys.argvに格納されます.ここで少し注意点があります.引数だけでなく,指定したpythonファイル名(ここではtest1.py)もリストに格納されるということです.

sysのインポート

python
import sys

コマンドライン引数を取得

コマンドライン引数は,sys.argvで,リスト形式で取得できます.

test1.py
import sys
print(sys.argv)
コマンドラインからの実行
pyhon test1.py -m 12
出力
['test1.py', '-m', '12']

ちなみに,sys.argv[0]でリストの1番目(ここではファイル名)等の指定ができます.

与えられた引数のよって処理を変えることもできます.

pyhton
if len(sys.argv) == 1:
    # 引数がない場合(要素数が1、ファイル名のみ)の処理
elif len(sys.argv) == 2 and sys.argv[1] == "hoge":
    # 引数が1つかつその値が"hoge"だった場合の処理
else:
    # ...
    

こういう感じでライブラリやOSSは作られているのですね.
ぱっと思いついたのは物体検知のYoloです.
Yoloを実行する際,

コマンドライン引数
python detect.py [どの重みを使うか] [どの形式の入力なのか] ...

等,たくさんの引数があります.これもsysで指定しているのですね.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?