import shutil
import os
import time
import json
import datetime
A_dir='/media/B/01-workspace/spaDev_v5/bps3.0'
B_dir='/media/B/01-workspace/spaDev_v5/bps3.0_2'
FILE_INFO_JSON="/media/B/01-workspace/modifyTime.json"
class count(object):
num=0
class fileMtime(object):
data={}
def checkAndSysnc(path1,path2):
path1 = path1 + "/"
path2 = path2 + "/"
first_dir_list1 = os.listdir(path1)
file_list =[]
folder_list =[]
#get file and folder list
for file in first_dir_list1:
if os.path.isfile(path1 + file):
file_list.append(file);
elif
os.path.isdir(path1 + file):
folder_list.append(file)
#elif
for file in file_list:
if file.endswith((".h",".cpp",".sh",".c",".hpp")):#only check those type file
file_info1 = os.stat(os.path.join(path1,file))
filename_key = os.path.join(path1,file)
if filename_key in fileMtime.data.keys():
last_modify_time = fileMtime.data[os.path.join(path1,file)]#get last modify time frome json
else:
last_modify_time = 0
print("%s not in fileMtime.data "%(filename_key))
if last_modify_time != file_info1.st_mtime:
fileMtime.data[filename_key]=file_info1.st_mtime
shutil.copyfile(os.path.join(path1,file), os.path.join(path2,file))
#print("file %s %s is modify"%(path1,file))
count.num+=1
for file in folder_list:
checkAndSysnc(os.path.join(path1,file),os.path.join(path2,file))
if __name__=='__main__':
starttime = datetime.datetime.now()
if os.path.exists(FILE_INFO_JSON):
print("%s exist."%(FILE_INFO_JSON))
with open(FILE_INFO_JSON,"r") as f:
fileMtime.data = json.load(f)
else:
print("%s not exist."%(FILE_INFO_JSON))
checkAndSysnc(A_dir,B_dir)
with open(FILE_INFO_JSON,"w") as f:
json.dump(fileMtime.data,f)
endtime = datetime.datetime.now()
seconds = (endtime - starttime).seconds
m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
print("%d file is change,%d:%02d:%02d" % (count.num,h, m, s))
import shutil import os import time import json class lei(object): count=0; class fileMtime(object): data={} def file_listen(path1,path2): path1 = path1 + "/" path2 = path2 + "/" #print("dirs %s"%(path1)) first_dir_list1 = os.listdir(path1) #first_dir_list2 = os.listdir(path2) #print("the path( "+ path,"):",first_dir_list) #print("exist file:", files) #new_file = [file for file in first_dir_list1 if os.path.isfile(path1 + file)] file_list =[] folder_list =[] for file in first_dir_list1: if os.path.isfile(path1 + file): file_list.append(file); elif os.path.isdir(path1 + file): folder_list.append(file) #elif 链接…… for file in file_list: if file.endswith((".h",".cpp",".sh",".c",".hpp")):#过滤 只处理列出的类型 info1 = os.stat(os.path.join(path1,file)) #info2 = os.stat(os.path.join(path2,file)) st_mtime = fileMtime.data[os.path.join(path1,file)] #if info2.st_mtime != info1.st_mtime:#判断最后修改时间 if st_mtime != info1.st_mtime:#判断最后修改时间 fileMtime.data[os.path.join(path1,file)]=info1.st_mtime shutil.copyfile(os.path.join(path1,file), os.path.join(path2,file)) print("file %s %s is modify"%(path1,file)) lei.count+=1 for file in folder_list: #print("dirs %s%s"%(path1,file)) file_listen(os.path.join(path1,file),os.path.join(path2,file)) #print("file num is:%d"%(lei.count)) import shutil import os def file_listen(path1,path2): path1 = path1 + "/" path2 = path2 + "/" print("dirs %s"%(path1)) first_dir_list1 = os.listdir(path1) #first_dir_list2 = os.listdir(path2) #print("the path( "+ path,"):",first_dir_list) #print("exist file:", files) #new_file = [file for file in first_dir_list1 if os.path.isfile(path1 + file)] file_list =[] folder_list =[] for file in first_dir_list1: if os.path.isfile(path1 + file): file_list.append(file); elif os.path.isdir(path1 + file): folder_list.append(file) #elif 链接…… for file in file_list: if file.endswith((".h",".cpp",".sh",".c",".hpp")):#过滤 只处理列出的类型 info1 = os.stat(os.path.join(path1,file)) info2 = os.stat(os.path.join(path2,file)) if info2.st_mtime != info1.st_mtime:#判断最后修改时间 shutil.copyfile(os.path.join(path1,file), os.path.join(path2,file)) print("file %s %s is modify"%(path1,file)) for file in folder_list: print("dirs %s%s"%(path1,file)) file_listen(os.path.join(path1,file),os.path.join(path2,file))
按后缀筛选文件
-
#元组案例
-
file = "python.txt" if file.endswith("txt"): print("该文件是文本文件") elif file.endswith((".AVI",".WMV",".RM")): print("该文件为视频文件") else: