【Python】argparseモジュールとやらでコマンドラインインターフェースを作成するために

投稿日:

プログラミング初心者の勉強ブログ #94

PyQ(https://pyq.jp/)によるPython学習記録です。Rubyを多少かじり、第二外国語としてPythonを少しづつ学んでいきます。(内容はRubyとの比較が多くなるかもしれません。)

今回はPyQの「実務でのPython」というクエストをやってる途中で出てきたargparseモジュールについてまとめます。今回かなり日記。

 

目次

 

argparseモジュールとは

argparseモジュールはユーザーフレンドリなコマンドラインインターフェースの作成を簡単にします。プログラムがどんな引数を必要としているのかを定義すると、argparseがsys.argvからそのオプションを解析する方法を見つけ出します。argparseモジュールは自動的にヘルプと使用方法メッセージを生成し、ユーザーが不正な引数をプログラムに指定したときにエラーを発生させます。

argparse --- コマンドラインオプション、引数、サブコマンドのパーサー Python 3.7.2 ドキュメント

argparseとは、コマンドラインでインターフェースを作成するためのモジュールであり、

ターミナルで「$ python passgen.py --help」 を打ち込むとコマンドライン上で上のような使い方や使えるオプションなどを表示してくれる。何かとよく見かけるのでイメージはすぐつくが、これを自分で作成するために使うモジュールとのこと。

コードで言えば、

passgen.py

こういった感じとなる。

フレームワークでのアプリ開発だとコマンドラインインターフェースは作る必要がないので、Webアプリ開発の勉強ばかりしてた身としてはこういうプログラムは新鮮な感じがする。gemとかそーいうプログラムを作成する練習をしないとコマンドラインインターフェースは覚えないんじゃないかなと。プログラマーといっても幅が広いと今更だが感じる。

とにかくargparseを使う場合は、

インポートして、

「parser」を生成して、

「add_argument()」で引数(オプション)を作り、

「parse_args()」でオブジェクトにする。名前が全部似ていて少しづつ違うので覚えづらい。

あとは「args」で引数取り出せて処理が行える。argparseのサブコマンド機能もやったが、そっちは理解が曖昧なので説明できない。もう少し解説が欲しい気がする。

 

まとめ

PyQやってて「実務でのPython」という章が急に難易度上がった気がする。写経回が多くアウトプットチャンスが無いままいきなり難易度高めな問題がやってきて難しかった。次あたりDjangoに入るから割と楽しみ。フレームワーク最強。

以上ありがとうございました。

 

 

 

-プログラミング学習
-,

Copyright© s u p ? , 2019 All Rights Reserved.