AI資格ドリル
資格を選ぶ↓

用語比較

sys.argvとargparseの違い|コマンドライン引数の受け取り方(Python3基礎)

Pythonのスクリプトにコマンドラインから渡した引数を受け取る方法は、標準ライブラリに2つあります。sysモジュールのargv属性と、argparseモジュールです。

sys.argvは、引数をリストとして格納します。argparseは、コマンドライン引数を処理するための、より高度な仕組みです。argvは並んだ文字列そのまま、argparseは名前つきオプションとして解析と覚えると区別できます。

Python3エンジニア認定基礎試験は、公式チュートリアルの内容を章ごとの出題率で出題する形で、第10章の標準ライブラリめぐりも範囲です。この記事では、チュートリアル10.3の例で、2つの受け取り方を見比べます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。Python3エンジニア認定基礎試験の一次情報確認日: 2026-09-18。

結論

sys.argv

コマンドライン引数が、sysモジュールのargv属性にリストとして格納される。チュートリアルの例では、python demo.py one two three で ['demo.py', 'one', 'two', 'three'] になる。

argparse

コマンドライン引数を処理するための、より高度な仕組み。ArgumentParserでパーサーを作り、add_argument()で引数を定義し、parse_args()で解析する。

共通点

どちらも標準ライブラリで、スクリプトに渡された引数を受け取るために使える。

違いを表で確認

比較軸sys.argvargparse
引数の受け取り方リスト sys.argv に格納される(例では先頭の要素がスクリプト名 'demo.py')add_argument() で定義した引数を、parse_args() で解析して受け取る
チュートリアル10.3の例の結果python demo.py one two three で ['demo.py', 'one', 'two', 'three']python top.py --lines=5 alpha.txt beta.txt で args.lines が 5、args.filenames が ['alpha.txt', 'beta.txt']
使うモジュールsysargparse

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

渡した引数が、どんな形で手に入るのか知りたい人

sys.argvはリストです。チュートリアルの例では、スクリプト名のあとに、渡した引数が順に並びます。

02

ファイル名と、--lines のようなオプションを分けて受け取りたい人

チュートリアルのargparseの例は、1つ以上のファイル名と、必要に応じて指定する表示行数を取り出します。解析後は args.lines や args.filenames として読めます。

具体例で使い分ける

例 1

チュートリアル10.3のsys.argv

demo.py の中で print(sys.argv) を呼び、python demo.py one two three と実行します。

  • 引数は、sysモジュールのargv属性にリストとして格納されます。
  • 出力は ['demo.py', 'one', 'two', 'three'] です。

結論: sys.argvは、渡した引数をリストでそのまま受け取ります。

例 2

チュートリアル10.3のargparse

ArgumentParser で、filenames(1つ以上)と --lines(整数、省略時は10)を定義し、parse_args() で解析します。python top.py --lines=5 alpha.txt beta.txt と実行します。

  • args.lines が 5 になります。
  • args.filenames が ['alpha.txt', 'beta.txt'] になります。

結論: argparseは、定義した名前で引数を解析して受け取ります。

問題文から答えを選ぶ手順

  1. 1

    使うモジュールを見る

    import sys なら sys.argv、import argparse なら ArgumentParser を使う書き方です。

  2. 2

    引数の読み方を見る

    リストの添字で読むなら sys.argv、args.lines のように名前で読むならargparseです。

  3. 3

    先頭の要素に注意する

    チュートリアルの例では、sys.argv の先頭にスクリプト名 'demo.py' が入り、渡した引数はその次から並びます。起動の形による違いは、リンク先の解説で確認できます。

試験での見分け方

  • 1コマンドライン引数が、リストとして格納されるのは、sys.argv。
  • 2コマンドライン引数を、より高度な仕組みで処理するのは、argparse。
  • 3argparseは、ArgumentParser、add_argument()、parse_args() の順に使う。
  • 4チュートリアルの例では、sys.argv の先頭の要素はスクリプト名。

誤答しやすい選択肢

sys.argv[0] が最初に渡した引数だと考える

修正: チュートリアルの例では、sys.argv の先頭は 'demo.py' というスクリプト名で、渡した引数はその次から始まります。

argparseを使わないとオプションを受け取れないと考える

修正: sys.argv にも、渡した引数はリストとして格納されます。argparseは、それをより高度に処理するための仕組みです。

確認問題

Q1python demo.py one two three と実行したとき、sys.argv の内容は?

答え: ['demo.py', 'one', 'two', 'three']

チュートリアル10.3の例です。先頭の要素はスクリプト名です。

Q2argparse で、引数を定義するメソッドは?

答え: add_argument()

チュートリアル10.3が、ArgumentParserでパーサーを作り、add_argument()で引数を定義し、parse_args()で解析すると説明しています。

Q3python top.py --lines=5 alpha.txt beta.txt のとき、args.lines の値は?

答え: 5

チュートリアル10.3の例で、args.lines が 5、args.filenames が ['alpha.txt', 'beta.txt'] になります。

到達チェック

  • sys.argvの中身の並びを説明できる
  • argparseで引数を定義、解析するメソッドを言える
  • 2つの受け取り方の違いを説明できる

同じ資格で次に知りたいこと

よくある質問

Qsys.argvとは?

A

コマンドライン引数がリストとして格納される、sysモジュールの属性です。

Qargparseとは?

A

コマンドライン引数を処理するための、より高度な仕組みを提供する標準ライブラリです。

Qsys.argvとargparseの違いは?

A

引数の受け取り方です。sys.argvはリストでそのまま受け取り、argparseは定義した名前で解析して受け取ります。

QPython3基礎試験の範囲?

A

公式の出題範囲は公式チュートリアルの章単位で、第10章の標準ライブラリめぐりと、10.3のコマンドライン引数を含みます。出題の形式は受験前に公式の案内で確認してください。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)