iCloudの画像整理バッチ (2)-1 ファイル属性をクラスにまとめよう<1>
経緯・理由
- こちらを参照
目的・実装予定の機能
目的
- こちらを参照
機能
目次用記事を立てました→こちら
<< 最初の記事 | < 前の連載記事 | 次の連載記事 >
(※免責:上記の順番は記事の順番とは一致しない可能性が高いです。あらかじめご了承下さい)
今回の機能の解説
- ファイルパスを受け取り、そこから様々な情報が受け取れるようにする
- 前準備として、クラスのコンストラクタ(
__init__
)を定義する
ソースコード
file_attr.py
def __init__(self, fpath, dest_dir, size_limit):
org_path = Path(fpath) # ファイルパスを受け取り、Pathオブジェクトにする
if not org_path.exists(): # 存在しないファイルは無視
return
ctime = org_path.stat().st_ctime # 作成日時の取得
fsize = org_path.stat().st_size # ファイルサイズの取得
self.org_path = org_path
self.create_time = ddt.fromtimestamp(ctime) # ctimeはtimestampなのでdatetimeに変換
self.file_size = fsize
self.dest_org = Path(dest_dir)
self.dest_path = self.dest_org / org_path.name # 移動先のパスを設定
self.allow_copy = False
self.size_limit = size_limit
解説
-
self.
で宣言すると、同じインスタンスでそれ以降変数が利用可能になる(はず)- そのため、
__init__
で宣言するのが早い
- そのため、
- ファイルの属性は
os.path
から取得しても良い- 今回は
pathlib
のPath
クラスから取得
- 今回は
-
ddt
はfrom datetime import datetime as ddt
で宣言したもの- 通常は
datetime.datetime.fromtimestamp(timestamp)
になる
- 通常は
細かいところは後日
- 修正箇所見つけたのは後日に