• python


    备份目录/文件

    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:aaaJetbrainsCrack-2.8-release-enc.jar",r'D:bb备份')
  • 相关阅读:
    Html5 Canvas一个简单的画笔例子
    DrawTool画笔之图形笔
    DrawTool画笔之纹理笔
    DrawTool多重笔之前奏 => 通过InkAnalyzer实现图形识别
    分布式系统阅读清单
    多点触摸画板(MultiTouchCanvas)
    基于 abp vNext 微服务开发的敏捷应用构建平台
    基于 abp vNext 微服务开发的敏捷应用构建平台
    基于 abp vNext 微服务开发的敏捷应用构建平台
    基于 abp vNext 微服务开发的敏捷应用构建平台
  • 原文地址:https://www.cnblogs.com/Anec/p/10174636.html
Copyright © 2020-2023  润新知