2009年08月21日
python ファイルの更新日時を取得
ファイルの更新日時を取得する方法ですが、
os.stat(Filepath).st_mtimeで取得できます。
使い方としてはこんな感じ。
import os
updtime = os.stat(fname).st_mtime
print updtime
ただpythonの日付関数は、エポックタイムとかいうものが返ってきます。
ですので、エポックタイムを変換しなければいけません。
エポックタイムの変換にはtimeを使用します。
import os
import time
updtime = os.stat(fname).st_mtime
print updtime
# エポックタイムを変換
mtime = time.gmtime(updtime)
print mtime
これでmtimeの中に変換された日付情報が格納されました。
できれば yyyymmdd 形式で表示したいので最後の仕上げです。
import os
import time
updtime = os.stat(fname).st_mtime ・・・?@
print updtime
# エポックタイムを変換
mtime = time.gmtime(updtime)
print mtime
#年月日抽出
ymd = str(mtime[0]) + str(mtime[1]).rjust(2,'0') + str(mtime[2]).rjust(2,'0') ・・・?A
print ymd
こんな感じです。これで無事に yyyymmdd の更新日が取得できました。
私がハマったのはエポックタイムの存在を知らなかったため、頭の中が???となってしまいました。
エポックタイムとは、「 1970年1月1日 0:00:00からの秒数であらわしたもの。 」
つまり1970年1月1日から何秒経ったのかと言う数値らしいです。
それって必要なのか・・・?
という当然の疑問もありますが、エポックタイムで管理している以上抵抗しなければw
ちなみに
?@で以下の様なこともできます。
ST_CTIME:作成日時
ST_ATIME:アクセス日時
ST_SIZE:ファイルサイズ
・
・
etc
今回のは結構使用頻度が高そうな関数ですね。
最後に?Aでさらっと書いてますが、オブジェクトで返ってきた物の中身を参照する際は
mtime[0],mtime[1],mtime[2]・・・
という感じで取得できます。
注意する点は、最初の項目が欲しい際は、 0 を指定するというくらいですかね。
(n個のオブジェクトの場合、指定できる数は0〜n-1となる)
うん。簡単でした。
{a8.net http://books.livedoor.com/item/3247473}
{a8.net http://books.livedoor.com/item/3222406}
⊆ ランキングに参加してみました!応援お願いします ⊇
【蛇の最新記事】
この記事へのコメント