pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、パラメーターに関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。
後々レイアウトを変更したり、プログラムで読み込むブック名やセルの値を変えてしまうかもしれない時の対処法です。
なんだかちょっと実戦形式っぽくてワクワクしてます。
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()
それらを踏まえて
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」オプションを付けてプログラムを実行するとプログラムの詳細を表示してくれます。