import os
import shutil
#src源文件、dest被复制的文件
src ="D:\\protect\\nodejs\\test\\testmkdir\\assets"
dest ="D:\\protect\\nodejs\\test\\5"
#通过校验MD5 判断dest内的文件与src不同
def get_MD5(file_path):
files_md5 = os.popen('md5 %s' % file_path).read().strip()
file_md5 = files_md5.replace('MD5 (%s) = ' % file_path,'')
return file_md5
def main(path,out):
for filesin os.listdir(path):
name = os.path.join(path,files)#拼接两个路径名
back_name = os.path.join(out,files)
#先使用python路径拼接os.path.join()函数,将os.listdir()返回的名称拼接成文件或目录的绝对路径再传入os.path.isdir()和os.path.isfile().
if os.path.isfile(name):#判断某一对象(需提供绝对路径)是否为文件
if os.path.isfile(back_name):
if get_MD5(name) != get_MD5(back_name):#校验MD5
shutil.copy(name,back_name)
else:
shutil.copy(name, back_name)
else:
if not os.path.isdir(back_name):#判断某一对象(需提供绝对路径)是否为目录
os.makedirs(back_name)#如果目录不存在,创建多层目录
#os.mkdir()创建路径中的最后一级目录
main(name, back_name)
if __name__ =='__main__':
main(src,dest)
print("测试成功")