Python 自动备份文件到远程目录(Windows适用)

每逢节假日,公司要求备份一次源码到共享目录。于是写了一个脚本,用来自动备份。

工作原理:

1.使用python的os.walk方法,遍历需要备份的目录文件。

2.使用python的zipfile模块,将文件夹打包成zip压缩包。

import zipfile
import os
from datetime import datetime

# 压缩文件夹到指定路径
def compress_directory(directory_path, output_path):
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(directory_path):
            for file in files:
                file_path = os.path.join(root, file)
                if file_path.find(".git") > -1:
                    zipf.write(file_path, arcname=os.path.relpath(
                        file_path, directory_path))


if __name__ == '__main__':
    # 源码目录
    dirPath = "E:\\Git"

    # 备份目录(存放压缩文件)
    toPath = '\\\\192.168.*.*\\源码备份\\2024-04-03\\'

    if not os.path.exists(toPath):
        os.makedirs(toPath)

    dirs = {}
    for file in os.listdir(dirPath):
        file_path = os.path.join(dirPath, file)
        # 条件筛选
        if os.path.isdir(file_path) and file_path.find("[自定义过滤条件]") > -1:
            dirs[file] = file_path

    print("开始备份源码,共"+str(len(dirs))+"个目录")
    i = 0
    for key, val in dirs.items():
        i = i+1
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") +" 正在备份("+str(i)+"/"+str(len(dirs)) + "):"+val)
        compress_directory(val, os.path.join(toPath, key+".zip"))
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") +" 备份完毕("+str(i)+"/"+str(len(dirs)) + "):"+val)

注意,请将文中的 dirPath、toPath 替换为你实际的路径,路径"\"需转义"\\"。

# 源码目录
 dirPath = "E:\\Git"

# 备份目录(存放压缩文件)
 toPath = '\\\\192.168.*.*\\源码备份\\2024-04-03\\'

#[自定义过滤条件] 可以设置过滤规则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值