環境
Windowsの仕様
エディション:Windows 10 Pro
バージョン:20H2
経緯
データを抽出する際にプロパティの中の”作成日時”を取得できたら、データ解析の時に便利だと思いたちました。
”作成日時”を取得する手順
各種インポート
import datetime
import os
datetimeとosをインポートします。
作成日時取得したいファイルのパスを取得
path = "data/01.csv"
今回は”deta”というフォルダの中に”01.csv”というファイルの作成日時を取ります。
ファイル作成日時を取得
いよいよ作成日時を取得します。
time = os.path.getctime(path)
time
os.path.getctimeを使います。すると、長い桁の数字が出力されます。これだとなんだかわかりませんね。
年月日を見やすく変換
なので、年月日にdatetime.fromtimestampを使って、変換します。以下のコード入力してください。
days = datetime.datetime.fromtimestamp(time)
print(days)
すると、データが見やすくなったかと思います。
さらに、わかりやすく変換
小数点以下とかいろいろ邪魔なので、もうひと手間かけます。
strftimeを使います。
make_file_days = days.strftime('%Y年%m月%d日%H:%M;%S')
make_file_days
すると、年月日と時間がわかりやすくなったかと思います。
これで、”ファイル作成年月日”を取得することができました。
Excelのカラムに代入してみる
せっかく取得できたので、次にExcelファイルのカラムに取得した”ファイル作成年月日”を代入しようと思います。
各種インポート
import pandas as pd
import openpyxl
pandas と openpyxlをインポートします。
Excelデータを読み込みます
#Excelデータ読み込み
df = pd.read_excel('test.xlsx')
こんな感じです。”test.xlsx”というファイルのカラムに代入します。
必要なカラムだけ取得します
先ほど読み込んだ”test.xlsx”の使うカラム。今回は1行だけなので、1つだけ取ります。
#必要なカラムだけ取得
df = df[[c00']]
”c00”という行だけ、取得しました。
取得した”作成日時”を[]で囲う
取得した”作成日時(make_file_days)”をそのまま代入すると、TypeErrorになるので、[]でくくります。
make_file_days = [make_file_days]
カラムに”作成日時(make_file_days)”を代入
#カラムに作成日時を代入
df.columns = make_file_days
すると、’c00’が’作成日時’代わりました。
終わりです。
苦労したところ
days = datetime.datetime.fromtimestamp(time)
print(days)
のところで小数点以下を消すのに苦労した。
splitやlocとか試しけど使えないし、そもそも”day”が何型なのかもわからないし、で大変でした。
勉強します。