Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Python】読込むブック名とセルの値をパラメーターにする。③

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、パラメーターに関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

後々レイアウトを変更したり、プログラムで読み込むブック名やセルの値を変えてしまうかもしれない時の対処法です。
なんだかちょっと実戦形式っぽくてワクワクしてます。

今回はこちらのブック「日報.xlsx」を、使用します。
image.png

argparseモジュール

コマンドラインで入力するのはsysモジュールと同じですが、より多くの機能があります。
詳しくはこちらをご覧ください。
https://docs.python.org/ja/3/library/argparse.html

先ずは、argparse.ArgumentParserオブジェクトを作り

parser = argparse.ArgumentParser(description=プログラムの説明)

次に、Parser.add_argumentメソッドを使って
コマンドラインで入力したパラメーターを取得します。

parser.add_argument(引数の名前, help=引数の説明)

コマンドラインで入力されたパラメーターは、ArgumentParser.parse_argsメソッドで取り出します。

parser.parse_args()

それらを踏まえて

argparse_arguments.py
import argparse
from openpyxl import load_workbook

parser = argparse.ArgumentParser(description='Excelのセルの値を取得するプログラム')

parser.add_argument('filename', help='読込むブック名: ')
parser.add_argument('cellno', help='読込むセル名(例 A1): ')

args = parser.parse_args()

wb = load_workbook(args.filename, read_only=True)
ws = wb.active

print(ws[args.cellno].value)

こんな感じで出来ました。

# 読み込むブック名とセル名を入力して実行
>python argparse_arguments.py 日報.xlsx I1
-->hogehoge

argparseの便利な点は、
descriptionの引数やadd_argumentメソッドのhelp引数の詳細を記述できる点でしょうか。
「-h」オプションを付けてプログラムを実行するとプログラムの詳細を表示してくれます。

rihu-do
日々の学習の中での気付きや発見をアウトプットしていきたいと思ってます! 『聞くは一時の恥聞かぬは一生の恥』ということで、間違いがございましたら教えて頂ければ幸いです。 日々訓練!精進していきます!
https://rihu-do.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away