博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python - 代码练习 - 备份目录/文件(windos环境)
阅读量:4345 次
发布时间:2019-06-07

本文共 2012 字,大约阅读时间需要 6 分钟。

备份目录/文件

import zipfileimport os,datetimeclass 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

你可能感兴趣的文章
前台实现ajax 需注意的地方
查看>>
Jenkins安装配置
查看>>
深入理解Java虚拟机&运行时数据区
查看>>
02-环境搭建
查看>>
spring第二冲刺阶段第七天
查看>>
搜索框键盘抬起事件2
查看>>
透析Java本质-谁创建了对象,this是什么
查看>>
BFS和DFS的java实现
查看>>
关于jquery中prev()和next()的用法
查看>>
一、 kettle开发、上线常见问题以及防错规范步骤
查看>>
eclipse没有server选项
查看>>
CRC码计算及校验原理的最通俗诠释
查看>>
使用Gitbook来编写你的Api文档
查看>>
jquery扩展 $.fn
查看>>
Markdown指南
查看>>
influxDB的安装和简单使用
查看>>
JPA框架学习
查看>>
JPA、JTA、XA相关索引
查看>>
机器分配
查看>>
php opcode缓存
查看>>