【Python×Excel】ファイルの作成日時を取得してExcelに反映する方法

目次

はじめに

今回は、Pythonを使ってファイルの作成日時を取得し、その情報をExcelのカラムに反映する方法について学びました。
使用環境は以下のとおりです。

  • OS: Windows 10 Pro
  • バージョン: 20H2

背景

データ抽出や整理を行う際に、ファイルの作成日時を取得できると、データのバージョン管理や分析に非常に便利だと感じました。
そのため、Pythonでファイルのプロパティから作成日時を取得し、Excelファイルに自動的に書き込む処理を試してみました。


作成日時を取得する手順

① 必要なモジュールのインポート

import datetime
import os
  • osモジュールでファイルの情報を取得
  • datetimeモジュールで取得日時を整形

② ファイルパスの指定

path = "data/01.csv"

ここでは「data」フォルダ内の「01.csv」の作成日時を取得します。


③ ファイルの作成日時を取得

time = os.path.getctime(path)

この段階では、UNIX時間(エポック秒)として取得されるため、そのままでは人が読める形式ではありません。


④ 読みやすい形式に変換

days = datetime.datetime.fromtimestamp(time)
print(days)

このコードにより、2024-03-01 14:52:10.123456のような日時形式に変換されます。


⑤ さらに見やすく整形(年月日+時刻)

make_file_days = days.strftime('%Y年%m月%d日%H:%M:%S')

これで、たとえば 2024年03月01日14:52:10 のような形式で取得できます。


Excelに作成日時を反映する

① Excel操作に必要なモジュールのインポート

import pandas as pd
import openpyxl
  • pandas:Excelデータの読み込みや編集
  • openpyxl:Excelファイルの保存や書き込み

② Excelファイルの読み込み

df = pd.read_excel('test.xlsx')

ここでは「test.xlsx」というファイルを読み込みます。


③ 特定のカラムだけ取得(任意)

df = df[['c00']]

ここでは「c00」というカラムだけを使用しています。行ではなく列の選択になります。


④ 作成日時をカラム名として代入

作成日時は文字列のままでは代入エラーが出るため、リスト形式([])に変換します。

make_file_days = [make_file_days]
df.columns = make_file_days

これで、元のカラム名「c00」が、作成日時に置き換えられます。


苦労した点

作成日時を整形する際、以下の箇所でつまずきました。

days = datetime.datetime.fromtimestamp(time)

このdaysのデータ型がわからず、文字列操作(splitloc)がうまくいかず苦戦しました。
結果的には、strftime()を使って文字列化すれば良いことが分かり、無事処理を完了できました。


まとめ

  • Pythonではos.path.getctime()でファイルの作成日時を取得できる
  • datetime.fromtimestamp()strftime()で読みやすい日時に変換可能
  • 作成日時をExcelに反映するには、**pandasopenpyxl**の併用が便利
  • df.columns = [作成日時]でカラム名を更新できる

作成日時を取得・管理することで、ファイルの更新履歴やデータの管理が一層しやすくなります。
今後はさらに、更新日時やアクセス日時も取得できるように拡張していきたいと考えています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次