二つのフォルダにある同じファイル名の更新日付を比較する
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()
