python 同步删除文件夹

发布于 2021-11-23 21:22:02 字数 1464 浏览 807 评论 1

    想要对不同路径的两个文件夹(源为c1、目标为d1)做同步,同步新增与修改的操作已经完成。

    新增时,若d1中没有相应的dir,则用os.mkdir进行创建,再将文件或文件夹进行shutil.copy2操作

    删除时,用以下操作,只能对目录中单个文件(例如目录下的test.txt文件等)进行删除,不能删除文件夹。

# coding: GBK
import os
import shutil
import sys
from threading import Thread

source_folder=E:/workspace/20140313sync/sync/d1
target_folder=E:/workspace/20140313sync/sync/c1

def syncdel(src,des):
    for file in os.listdir(src): 
         
        from_file = os.path.join(src, file)
        to_file = os.path.join(des, file)
         
        if(os.path.isdir(from_file)): 
            syncdel(from_file, to_file)
        else:
            if(isdel(from_file,to_file)): 
                os.remove(from_file)
                print "Delete file"
            else:
                pass

def isdel(from_file, to_file):
    if(not os.path.exists(to_file)): 
         return True
    from_file_modify_time = round(os.stat(from_file).st_mtime, 1) 
    to_file_modify_time = round(os.stat(to_file).st_mtime, 1)
    if(from_file_modify_time < to_file_modify_time): 
        return True        

def run():
    while True:
        syncdel(source_folder, target_folder) 
        time.sleep(2)
 
if __name__=='__main__':
    run()



请问应该怎样对删除进行操作,使得在手动删除c1中文件或文件夹的同时,d1中的相应内容也被删除。

求助。。。本人比较菜鸟,求高手帮助。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

顾挽 2021-11-25 07:42:09

为什么递归删除?shutil.rmtree()不行吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文