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

Python编写一个简单的文件备份程序

发布时间:2023-12-04 14:12:11

这是一个简单的文件备份程序,用于将源文件夹下的所有文件备份到目标文件夹。

import os
import shutil

def backup_files(source_folder, target_folder):
    # 检查源文件夹是否存在
    if not os.path.isdir(source_folder):
        print("源文件夹不存在")
        return
    
    # 创建目标文件夹
    os.makedirs(target_folder, exist_ok=True)
    
    # 遍历源文件夹下的所有文件和子文件夹
    for root, dirs, files in os.walk(source_folder):
        for file in files:
            # 构建源文件和目标文件的路径
            source_path = os.path.join(root, file)
            target_path = os.path.join(target_folder, file)
            
            # 复制源文件到目标文件夹
            shutil.copy2(source_path, target_path)
            
            print(f"已备份文件: {source_path} -> {target_path}")

# 使用示例
source_folder = "/path/to/source/folder"
target_folder = "/path/to/target/folder"

backup_files(source_folder, target_folder)

在使用程序之前,需要将source_foldertarget_folder替换为实际的文件夹路径。

这个程序基于osshutil模块。首先,我们检查源文件夹是否存在。如果不存在,打印错误消息并终止程序。然后,我们创建目标文件夹,如果它不存在的话。然后,我们使用os.walk遍历源文件夹下的所有文件和子文件夹。对于每个文件,我们构建源文件和目标文件的路径,并使用shutil.copy2函数将源文件复制到目标文件夹中。最后,我们打印已备份的文件路径。

使用时,将需要备份的文件夹路径传递给source_folder参数,将备份文件夹路径传递给target_folder参数。程序将会递归地备份源文件夹下所有的文件和子文件夹。

例如,假设源文件夹为/home/user/data,目标文件夹为/backup/data

source_folder = "/home/user/data"
target_folder = "/backup/data"

backup_files(source_folder, target_folder)

这样程序将会备份/home/user/data下的所有文件和子文件夹到/backup/data中。可以根据实际需要将路径修改为自己的文件夹路径。