python - 代码练习 - 备份目录/文件(windos环境)

备份目录/文件

import zipfile
import os,datetime

class beifen(object):
    def __init__(self,files,new_files,compression=zipfile.ZIP_DEFLATED):
        self.files = files
        self.new_files = new_files
        self.mode = ''
        self.compression=compression
        self.blo = self.has_file()
        self.zhuluoji()

    def has_file(self):
        if not os.path.exists(self.files):
            raise EOFError("原文件不存在!")
        else:
            # print("源文件存在")
            if os.path.isdir(self.files):
                # print("源文件是目录")
                return False
            else:
                # print("源文件是文件")
                return True

    def has_new_files(self):
        if not os.path.exists(self.new_files):
            # print("目的地址文件不存在,直接备份")
            self.mode = 'w'
        else:
            # print("目的地址文件存在,追加备份")
            self.mode = 'a'
        # self.new_files = datetime.datetime.now().strftime('%Y-%m-%d') + "-" +self.new_files+ '.zip'
        dirname = os.path.dirname(self.new_files)
        basename = os.path.basename(self.new_files)
        self.new_files = dirname + r'\\' + datetime.datetime.now().strftime('%Y-%m-%d') +" "+ basename +'.zip'
        print(self.new_files)

    def zipfile(self,blo):
        with zipfile.ZipFile(self.new_files, self.mode, self.compression) as z:
            print("正在执行备份操作.....请稍后.......")
            if blo:
                z.write(self.files)
            else:
                for i1,i2,i3 in os.walk(self.files):
                    for x in i3:
                        z.write(os.path.join(i1,x))
            print("备份成功!")

    def zhuluoji(self):
        self.has_new_files()
        if self.blo:
            self.zipfile(self.blo)
        else:
            self.zipfile(self.blo)


if __name__=='__main__':
    print(r"""
    files = 路径\源文件名.文件类型 or 路径\源文件目录;
    new_files = 绝对-相对路径\文件名;
    """)
    files = input("输入源文件路径")
    new_files = input("输入目的文件路径")
    bf = beifen(r"D:\aaa\JetbrainsCrack-2.8-release-enc.jar",r'D:\bbb\备份')

 

转载于:https://www.cnblogs.com/Anec/p/10174636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值