[Python基礎]コマンドライン引数の導入

Python

今回はターミナル上からより細かな処理をする際などに便利なコマンドライン引数の導入をします。

スポンサーリンク

コマンドライン引数とは

コマンドライン引数の大きな特徴としては、その名の通りコマンドラインで入力できる引数であることです。コマンドラインとは、下記のようにターミナル上で何かを実行するときに打ち込む”それ”です。

Python OOOO.py

Pythonプログラムを実行する際、同時に引数をプログラムに入れることが出来たら便利だと思いませんか?

例えば、

  • 複数の変数が必要になる数値計算
  • 多様な処理を実装したプログラム内で一部の処理だけをしたい場合
  • 複雑な処理の指定、複数の変数の入力によってプログラムを動かす

などといったことが出来ます。

また、コマンドライン引数はリスト型オブジェクトに格納されることも大きな特徴のひとつです。

似たようなものでinputというものがありますが、こちらはプログラムを実行した後、すなわちプログラム内で引数の入力を求められるというものです。対話形式で入力できることが強みです。どちらを用いるかはケースバイケースですね。

ソースコード

コマンドライン引数を理解するために単純なソースコードを書いてみました。

コマンドラインに苗字、名前、そしてそれを日本語式で表示するのか英語式で表示するのかを指定し、指定した方の名前表示を出力するというものです。例えばYamada Taroという名前だとしたら、日本式はYamada Taroで、英語式だとTaro Yamadaということになります。

コメントアウトも残したので、ぜひ参考にしつつコピペして試してみて下さい。

import sys #コマンドライン引数を用いる際はsysをインポートする

if __name__ == "__main__":
    args = sys.argv #コマンドライン引数をargsに代入。自動的にリスト型になる

    if len(args) == 4:  #argsが4つの要素を含んだリストかどうか判別 lenはリストやディクショナリの長さ(要素数)を取得する関数 lengthのlen
        print(args) #args(リスト)を表示  インデックス0にはスクリプト名が代入されることが分かる

        if args[3] == "JP": #日本式の表示
            print(args[1],args[2])
        elif args[3] == "ENG": #英語式の表示
            print(args[2],args[1])
        else: #JPやENG以外のものがコマンドラインの第三引数に書かれていたらエラーとして表示
            print("Incorrect input.[",args[3],"] Input JP or ENG.")
            quit()

    else:#argsに3つ以外の要素が含まれているとき、正式な処理をするよう促す
        print("Please type your name as in the example bellow.")
        print(">___.py Lastname Firstname JP/ENG")
        quit()

各パターンの実行結果です。上から英語式表示、日本式表示、第三引数の例外入力、同じ、引数全体の例外入力です。

マスルキン

当ブログ管理人のマスルキンです。

高専電気系学科に5年間在籍。卒業後は専攻科に進学し現在に至る。

生まれつき聴覚障害があり
補聴器の使用、コミュニケーションでは読唇や手話などを用いています。

当ブログでは
・プログラミング・研究関係の備忘録
・趣味(筋トレ、カメラ、プラモデル、etc...)
・自身の日常
などを自由気ままに皆様に発信いたします。

記事が皆様のお役に立てば幸いです。

マスルキンをフォローする
Python プログラミング
スポンサーリンク
マスルキンをフォローする
マスルキンの部屋

コメント

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