LoginSignup
2
6

More than 3 years have passed since last update.

【Python】絶対パスと相対パス

Last updated at Posted at 2021-01-28

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を使うと相対パスを絶対パスに変換のできるみたいですし
色々と勉強が楽しみです。

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6