37,719
社区成员
发帖
与我相关
我的任务
分享
#coding:utf8
import os,shutil,time,filecmp
ml = []#需对比的目录
bendidir = os.getcwd()
zhudir = r''#需要输入主文件目录
t1 = 1 #检测刷新时间要求大于1分钟单位分钟
def mlchuli(dir,mllist):
llist = []
for a in mllist:
mldir = os.path.join(dir,a)
llist.append(mldir)
return llist
zhudir = mlchuli(zhudir,ml)
bendidir = mlchuli(bendidir,ml)
def zpcp(path1,path2):
'''
对比目录和目录下的文件
:param path1: 目标目录
:param path2: 本地目录
:return:
'''
dirobj = filecmp.dircmp(path1,path2)
dirlist = dirobj.left_only
if dirlist != []:
for i in dirlist:
dir1 = os.path.join(path1,i)
dir2 = os.path.join(path2,i)
try:
shutil.copytree(dir1,dir2)
except:
shutil.copy2(dir1,dir2)
else:
try:
zpdir = os.listdir(path2)[-1]
dir1 = os.path.join(path1,zpdir)
dir2 = os.path.join(path2,zpdir)
dirobj = filecmp.dircmp(dir1,dir2)
dirlist = dirobj.left_only
if dirlist != []:
for i in dirlist:
try:
shutil.copy2(os.path.join(dir1,i),os.path.join(dir2,i))
except:
print "copy error"
except:
pass
while True :
if filecmp.cmp(zhudir[0],bendidir[0]) == False:
try:
map(zpcp,zhudir[1:],bendidir[1:])
shutil.copy2(zhudir[0],bendidir[0])
print"updatatime:%s" %time.ctime()
except:
time.sleep(30)
print "restart"
continue
time.sleep(t1*60)