現在時刻との差を求める
指定されたディレクトリの中身のファイルを調べ、それらのファイルの最終更新時刻を参照し、その時間が現在時刻と2時間以上離れていたら、そのファイルを削除する。
というものをpythonで書いていた。練習にはちょうどいい内容だった。
# -*- coding: utf-8 -*- import os,time,sys from datetime import date #ディレクトリ dir = '/home/wakizaka/python/' for root,dirs,files in os.walk(dir): for file in files: #現在時刻をエポックで取得 ima = int(time.time()) #ファイルの最終更新時刻を取得 mae = int(os.stat(file).st_mtime) #差を計算 sa = ima -mae #差が2時間以上だった場合 if(sa > 7200): try: print file+"を削除します" os.remove(file) except OSError: print 'そのようなファイルはありませんでした'
ファイルへのアクセス等はosモジュール?を使い、時間などはtimeを使うといいようだ。たぶんdateはいらない。
for文の書き方がなんだかとても気持ち悪い。ただこれで一応動くのでまぁいいだろう。
ファイルの最終更新時刻はst_mtimeで取れるが、これはエポック秒だった。
エポック秒とは1970年からの秒数らしいので、現在時刻もエポック秒で取得し、二つの時刻の差を求め、それが7200秒(2*60*60)以上だったら削除をする処理をしている。
あと特定のファイルを削除するものも書いたので参考までに載せておく。
# -*- coding: utf-8 -*- import os,time,sys from datetime import date #ファイルを指定して削除 py = '/home/wakizaka/python/output.py' #現在時刻をエポックで取得 ima = int(time.time()) #ファイルの最終更新時刻を取得 mae = int(os.stat(py).st_mtime) #差を計算 sa = ima -mae #差が2時間以上だった場合 if(sa > 7200): try: print py+"を削除します" os.remove(py) except OSError: print 'そのようなファイルはありませんでした'