欢迎访问宙启技术站
智能推送

用Python编写一个简单的文件同步工具

发布时间:2023-12-04 09:23:30

文件同步工具是一种用于将文件从一个位置复制到另一个位置的工具。通过使用Python编写一个简单的文件同步工具,可以实现文件的定期备份、实时备份或文件夹同步等功能。下面是一个简单的文件同步工具的示例代码。

import os
import shutil
import time

def sync_files(source_dir, target_dir):
    files_to_copy = []
    
    # 遍历源目录,找到需要同步的文件
    for root, dirs, files in os.walk(source_dir):
        for file in files:
            file_path = os.path.join(root, file)
            files_to_copy.append(file_path)
    
    # 复制文件到目标目录
    for file_path in files_to_copy:
        relative_path = os.path.relpath(file_path, source_dir)
        target_path = os.path.join(target_dir, relative_path)
        target_dirname = os.path.dirname(target_path)
        
        # 创建目标目录
        os.makedirs(target_dirname, exist_ok=True)
        
        # 复制文件
        shutil.copy2(file_path, target_path)

if __name__ == "__main__":
    # 设置源目录和目标目录
    source_dir = "/path/to/source"
    target_dir = "/path/to/target"
    
    # 同步文件
    sync_files(source_dir, target_dir)
    
    # 每隔一段时间同步一次文件
    while True:
        sync_files(source_dir, target_dir)
        time.sleep(60)  # 每隔60秒同步一次文件

在上面的示例代码中,sync_files函数用于实现文件同步功能。它会遍历源目录中的所有文件,并将这些文件复制到目标目录中。如果目标目录不存在,会自动创建。

if __name__ == "__main__":的代码块中,我们设置了源目录和目标目录。然后调用sync_files函数进行一次初始的文件同步。

接下来,使用一个无限循环来实现定期的文件同步。在每次循环中,调用sync_files函数同步文件,并通过time.sleep函数设置同步的时间间隔。

使用这个文件同步工具,可以将源目录中的文件定期或实时地同步到目标目录中。可以根据具体需求调整同步的时间间隔。