【发布时间】:2019-07-08 09:05:12
【问题描述】:
目前,我正在处理一个同步两个文件夹的项目。在以下示例中,我的文件夹将广告 Folder_1 作为源,Folder_2 作为目标我想做以下事情。
- 如果 Folder_1 中存在的文件在 Folder_2 中不存在, 将文件从 folder_1 复制到 Folder_2 和 Vice Versa。
- 如果我重命名任一文件夹中的任何文件,它会在另一个文件夹中更新,而不是复制具有更新名称的新文件。
- 如果我从任何文件夹中删除任何文件,它也应该从另一个文件夹中删除。
我已经完成了第一点的一半,我可以将文件从 Folder_1 复制到 Folder_2。我可以将文件从 Folder_2 复制到 folder_1 的发送部分仍然存在。
以下是我的代码
import os, shutil
path = 'C:/Users/saqibshakeel035/Desktop/Folder_1/'
copyto = 'C:/Users/saqibshakeel035/Desktop/Folder_2/'
files =os.listdir(path)
files.sort()
for f in files:
src = path+f
dst = copyto+f
try:
if os.stat(src).st_mtime < os.stat(dst).st_mtime:
continue
except OSError:
pass
shutil.copy(src,dst)#this is the case when our file in destination doesn't exist
=
print('Files copied from'+ path +'to' + copyto+ '!')
我可以修改或做些什么来完全同步这两个文件夹? 在此先感谢:)
【问题讨论】:
-
如何知道是文件丢失(案例1)还是文件被删除(案例3)?
-
那么问题出在哪里?
-
@Alderven 问题是我不明白如果我从源文件夹中删除文件,如何使用 .os 从目标中删除文件..??
-
@xmojmr my code { files =os.listdir(path) } 列出目录中存在的所有文件。说文件夹一。 “尝试”检查保存在目标文件夹中的文件是否具有最新时间,如果这是真的,它会转到“除外”,它表示将文件复制到目标文件夹
标签: python operating-system shutil os.walk