如何使用 python 脚本同步两个文件夹
How to synchronize two folders using python script
目前,我正在做一个同步两个文件夹的项目。以下示例中我的文件夹名称为 ad Folder_1 as source and Folder_2 as destination 我想做以下事情.
- 如果 Folder_1 中存在的文件在 Folder_2 中不存在,
将文件从 folder_1 复制到 Folder_2,然后 反之亦然 .
- 如果我重命名任一文件夹中的任何文件,它会在另一个文件夹中更新,而不是使用更新后的名称复制新文件。
- 如果我从任何文件夹中删除任何文件,它也应该从其他文件夹中删除。
我已经完成了第一点的一半,我可以将文件从 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+ '!')
我可以修改或执行哪些操作才能使两个文件夹完全同步?
提前致谢:)
(与您的方法不同,但可以按照您的查询预期完成工作)
使用dirsync
的简单代码:
from dirsync import sync
source_path = '/Give/Source/Folder/Here'
target_path = '/Give/Target/Folder/Here'
sync(source_path, target_path, 'sync') #for syncing one way
sync(target_path, source_path, 'sync') #for syncing the opposite way
有关更多选项,请参阅此处的文档: dirsync - PyPI
当然,您可以根据需要手动添加异常处理。
目前,我正在做一个同步两个文件夹的项目。以下示例中我的文件夹名称为 ad Folder_1 as source and Folder_2 as destination 我想做以下事情.
- 如果 Folder_1 中存在的文件在 Folder_2 中不存在, 将文件从 folder_1 复制到 Folder_2,然后 反之亦然 .
- 如果我重命名任一文件夹中的任何文件,它会在另一个文件夹中更新,而不是使用更新后的名称复制新文件。
- 如果我从任何文件夹中删除任何文件,它也应该从其他文件夹中删除。
我已经完成了第一点的一半,我可以将文件从 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+ '!')
我可以修改或执行哪些操作才能使两个文件夹完全同步? 提前致谢:)
(与您的方法不同,但可以按照您的查询预期完成工作)
使用dirsync
的简单代码:
from dirsync import sync
source_path = '/Give/Source/Folder/Here'
target_path = '/Give/Target/Folder/Here'
sync(source_path, target_path, 'sync') #for syncing one way
sync(target_path, source_path, 'sync') #for syncing the opposite way
有关更多选项,请参阅此处的文档: dirsync - PyPI
当然,您可以根据需要手动添加异常处理。