python 文件增量备份

本文介绍了一个使用Python编写的自动化备份脚本,该脚本能够遍历指定目录下的所有文件和子目录,并将它们备份到另一个指定目录。备份过程中会检查文件是否已存在并比较文件的最后修改时间来决定是否进行更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python
#-*-coding:utf-8-*-
#Filename: auto_bak.py
#Author: zz
import os
import sys
 
def get_dir(path):
    print path, '\n'
    return os.listdir(path)
 
def bak_file(path,path_bak):
 
    list = os.listdir(path)
    for l in list:
        file_path     = os.path.join(path, l)
        file_path_bak = os.path.join(path_bak, l)
        print file_path
        #如果文件路径为目录
        if os.path.isdir(file_path):
 
            #如果在备份目录中文件夹不存在则创建
            if not os.path.isdir(file_path_bak):
 
                create_com = '''mkdir -p '%s' ''' \
                             % (file_path_bak)
 
                if os.system(create_com) == 0:
                    print create_com 
                else:
                    print 'create folder failure!'
                    os._exit(0) 
 
            bak_file(file_path, file_path_bak)
        else:
            #如果文件已经存在,则比较文件修改时间
            if os.path.isfile(file_path_bak):
 
                stat_bak    = os.stat(file_path_bak)
                stat_source = os.stat(file_path)
 
                #判断文件修改时间
                if stat_source.st_mtime <= stat_bak.st_mtime:
                    continue
 
            cp_com  = '''cp '%s' '%s' ''' \
                      % (file_path, file_path_bak)
 
            if os.system(cp_com) == 0: 
                print cp_com
            else: 
                print 'create folder failure!'
                os._exit(0) 
 
#要备份的文件目录
path     = '/home/zyf/appspot/auto_bak/a'
#备份文件目录
path_bak = '/home/zyf/appspot/auto_bak/bak'
#开始备份
bak_file(path, path_bak)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值