1. 始めに
今日はsysについて紹介していきます!カレンダーを作る中でsysモジュールにはすごく苦戦しました。他の関数とどう組み合わせていいか分からない、そもそも書き方あってるのかと思いながら公式ドキュメントを何周も読んでました。
そんな悩みを解決するために私が1から書き方伝授します!sysは種類が多すぎるのでカレンダー作成の際に作ったものを参考に説明していきます。
それではまず私の完成のコードからご覧ください。
完成形がこちら!
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-m', type=int, required=True)
args = parser.parse_args()
month = args.m
if not 1 <= month <=12:
print(f'{month} is neither a month number (1..12) nor a name')
sys.exit(1)
if __name__ == "__main__":
main()
これを見た時きっとあなたの頭の中には「???」が浮かんでいると思います。
私も正直最初は「このコードはどうなっているんだ」という気持ちでいっぱいでした。
このコードを噛み砕いて解いて説明していきます。
2.sysを使ったプログラムの書き方について
2-1. mainを定義する
mainを定義する
def main():
if __name__ == "__main__":
main()
mainを定義するのは、関数の後ろに書けるからです。変数名の衝突も防ぐことができるので定義しましょう。
2-2. parserを作る
parserを作る
def main():
parser = argparse.ArgumentParser()
perser
を作ります。プログラムの説明なども()内に書く事ができます。プログラム名や利用方法、オプションの追加など全体を定義するところになります。
2-3. parserの引数の設定をする
parserの引数の設定をする
parser.add_argument('-m', type=int, required=True)
引数とはコマンドラインで使う「-〇〇」などのオプションのことです。Linuxコマンドのls -a
で言うところの-a
のことです。引数を指定するには([引数],[文字型or数字型],[オプションを必須に指定])という構成で書きます。最初に作ったparser
に引数の設定を加えると-m
が使えるようになります。
2-4. argsの引数を取得する
argsの引数を取得する
args = parser.parse_args()
argsはコマンドの引数を取得するために使うものです。追加した引数を使うために指定します。
2-5. argsの引数をmonthに渡す
argsの引数をmonthに渡す
month = args.m
month
にarg
で取得した-m
の値を渡すことで指定した数字かどうかを判断します。
2-6. monthの数字が1~12か判断する
monthの数字が1~12か判断する
if not 1 <= month <=12:
print(f'{month} is neither a month number (1..12) nor a name')
-m
で指定した数字が1~12だったらカレンダーを出力してそれ以外の数字はエラーにします。
2-7. exit()で終了する
exit()で終了する
sys.exit(1)
sys.exit(1)
を使うとプログラムを終了できます。
3. 最後に
このように細かく見ていくとすごく流れがよく分かりますよね。これ以外にもsysモジュールはたくさんあるので色々なモジュール使ってきたいです!
他のsysモジュールも気になった人はぜひ調べてみてください!