二つのフォルダにある同じファイル名の更新日付を比較する
2016/01/05
タイトルの通り、比較元のフォルダで比較先のフォルダよりも更新日付が新しいものをピックアップしたかったので、かなり久しぶりに python2.7 で書いてみた。
実際はこのファイル比較を行った後、新しいく更新されているファイルに紐づく特定の jenkins の job をリモート実行させるというところまでやっている。
import os import time import datetime import glob A_DIR = "比較元のファイルがあるディレクトリのパス" B_DIR = "比較先のファイルがあるディレクトリのパス" TODAY = datetime.datetime.today() TODAY_YMD = TODAY.strftime("%Y%m%d") def main(): a_files = glob.glob(A_DIR + "*.dll") b_files = glob.glob(B_DIR + "*.dll") a_dic = {} new_dll_list = [] f = open("log/%s.log" % TODAY_YMD, "w") for a_f in a_files: stat = os.stat(os.path.join(A_DIR ,a_f)) last_modified = stat.st_mtime dt = datetime.datetime.fromtimestamp(last_modified) a_dic[a_f.split("\\")[-1]] = dt.strftime("%Y-%m-%d %H:%M:%S") for b_f in b_files: b_f_name = b_f.split("\\")[-1] if a_dic.get(b_f_name) == None: continue a_datetime = a_dic[b_f_name] stat = os.stat(os.path.join(B_DIR ,b_f_name)) last_modified = stat.st_mtime dt = datetime.datetime.fromtimestamp(last_modified) b_datetime = dt.strftime("%Y-%m-%d %H:%M:%S") if a_datetime > b_datetime: new_dll_list.append(b_f_name) f.write("更新日付が新しいファイル:%s\n\r" % b_f_name) f.close() if __name__ == "__main__": main()