使用python比较两个文件夹的文件并更新

import os,shutil
import datetime
#将子文件夹里的文件全部移动出来,去除重复文件(文件名相同,大小相同则跳过)
#revised by Stephen Shen 
#2020-3-8 16:31:07
src='G:\_debug0229'
dst='D:\_debug0229'

 

# oldfile=os.path.getsize(r'G:\_debug0229\111.txt')
# newfile=os.path.getsize(r'd:\_debug0229\111.txt')

 

for folderName,subFolders,fileNames in os.walk(src):
    # print('The current foler is '+folderName)

 

    # for subfolder in subFoldst` s:
        # print('Subfolder of '+folderName+' :'+subfolder)

 

    for filename in fileNames:
        # print('File inside '+folderName+' :'+filename)
        
        srcpath=os.path.join(folderName,filename)
        relpath=os.path.relpath(folderName,src)
        dstpath=os.path.join(dst,relpath,filename)

 

        if os.path.exists(dstpath):
            srcsize=os.path.getsize(srcpath)
            dstsize=os.path.getsize(dstpath)
            if srcsize==dstsize:
                #文件名相同且大小相同
                # print('File inside '+folderName+' :'+filename+' is skipped')
                continue
            else:
                fdirname,fbasename=os.path.split(dstpath)
                #文件名相同但大小不同
                fname,fext=os.path.splitext(fbasename)
                nowtime=datetime.datetime.now()                
                strtime=str(nowtime.year)+str(nowtime.month)+str(nowtime.day)+str(nowtime.hour)+str(nowtime.minute)
                newfbasename=fname+'-'+strtime+fext
                dstpath=os.path.join(fdirname,newfbasename)
                print('File inside '+folderName+' :'+filename+' is renamed')
                shutil.copyfile(srcpath,dstpath)

 

        else:
            shutil.copyfile(srcpath,dstpath)
            print('File inside '+folderName+' :'+filename+' is copied')
        
print('done')






posted on   风中狂笑  阅读(976)  评论(1编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示