python 同步删除文件夹
想要对不同路径的两个文件夹(源为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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么递归删除?shutil.rmtree()不行吗?