pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、絶対パスと相対パスに関してです。
複数ブックのセルを取得して一覧を作る
先ずは前提として
デスクトップ上にtestフォルダーを作成し、その中に
スタッフのチェックシートを纏めて保存したbooksフォルダーと
以下のようなプログラムを作ってみました。
User/Desktop/test/read_books.py
from pathlib import Path
from openpyxl import load_workbook, Workbook
wb_new = Workbook()
ws_new = wb_new.active
ws_new.title = '社員一覧表'
ws_new['B2'] = '部署名'
ws_new['C2'] = '氏名'
path = Path('./books')
for i, file in enumerate(path.glob('*.xlsx')):
wb = load_workbook(file, read_only=True)
ws = wb['チェックシート']
row_no = i + 3
ws_new[f'B{row_no}'] = ws['C2'].value
ws_new[f'C{row_no}'] = ws['C3'].value
wb_new.save('社員一覧表.xlsx')
こちらで問題なく社員一覧表は作成出来たのですが
ふと、booksフォルダーは、デスクトップ上で保管したいなと思い至り
booksフォルダーをデスクトップ上へ移動させます。
後は記述を変更するだけです。が、どこを変えるのかな??
相対パスを使用する
答えは簡単でした。相対パスを使用します。
User/Desktop/test/read_books.py
# 記述を変更
path = Path('../books')
こちらで問題なく作成できました。
思いがけずスクールの復習もでき
言語が変わっても記述方法が変わるだけで、意外と考え方は変わらないことも再発見できました。
Pythonの標準ライブラリであるpathlibを使うと相対パスを絶対パスに変換のできるみたいですし
色々と勉強が楽しみです。