Pythonで日付、時刻の比較を行う
急に性能が落ちてきた処理がある。しかし、それがいつからなのか、体感的なもので本当はたいして性能劣化していないのか。
よくわからなかったので、ログファイルを集計して処理時間を計測してみることにした。
簡単に作りたかったのでPythonを利用する。
文字列の日時をdatetimeに変換して、datetimeとdatetimeを引き算し、返ってきたtimedeltaから差を得ればよいようだ。
文字列からdatetimeへの変換
import datetime
start_date_time = datetime.datetime.strptime('2018-09-14:14:49:31', '%Y-%m-%d:%H:%M:%S')
end_date_time = datetime.datetime.strptime('2018-09-14:14:51:13', '%Y-%m-%d:%H:%M:%S')
日付のフォーマットを指定すれば、ログファイルの日付フォーマットはいろいろ対応できそうだ。
処理時間を算出する
dist_delta = end_date_time - start_date_time
print(dist_delta.seconds)
print(dist_delta.days)
secondsで差の秒数を取得できる。
何日も差があるようであれば、daysで差の日付を取得できる。
まとめ
数十万行のログファイルから特定のキーで開始時間と終了時間を取得しつつ、処理時間の平均を日ごとに集計したが、1分未満で処理が終わった。Python優秀だ。
同じタグの記事
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
同じカテゴリの記事
コメントを残す