博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python实战系列】论文备份的重要性(五)
阅读量:2055 次
发布时间:2019-04-28

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

 最近,小浩同学因为论文的事天天在和我抱怨。他的论文已经修改了n遍了,他的导师还是不满意,动不动就重写,着实无情。

    看着他我笑而不语,仿佛就回到了当时我改论文的时候,因为我们的论文刚好被抽到,可能会被教育局抽查,所以导师抓的特别严,改论文改得怀疑人生。

     印象特别深刻,有个哥们查重率都达到5%以下了,导师依然不肯放过他。很多论文到最后时刻都胶装好了,依然没什么用,统统回炉重造。

 

    依照我丰富的改论文的经验,每个版本的论文肯定需要备份的,因为随时可能改回原版。为了不让小浩同学每次都手动备份一大堆资料和论文,我决定帮帮他。

    刚好我最近学到了文件夹的压缩,我可以将每个版本备份成一个压缩文件,并在命名时,给每个压缩包添加版本号,这样,就能随时获取之前的版本了。

 

接下来我们来思考一下具体应该怎么实现:

1.首先我们可以创建一个zip文件,按照版本号,先判断是否存在,不存在直接创建,否则将版本递增,继续判断。

2.然后通过递归遍历,将需要备份的每个文件夹和文件添加到zip文件中。

 

具体实现步骤如下:

import zipfile, os# 备份def backupToZip(folder):    os.chdir("F:\\test\\")    folder = os.path.abspath(folder)    number = 1    while True:        # number为版本号,加在zip命名上        zipFilename = os.path.basename(folder) + '_' + str(number) + '.zip'        if not os.path.exists(zipFilename):            break        number = number + 1    # 创建zip文件    print('创建 %s...' % (zipFilename))    backupZip = zipfile.ZipFile(zipFilename, 'w')    # 递归遍历文件夹和文件,添加到zip文件    for foldername, subFolder, filenames in os.walk(folder):        print('添加文件%s...' % foldername)        backupZip.write(foldername)        for filename in filenames:            newBase = os.path.basename(folder) + '_'            if filename.startswith(newBase) and filename.endswith('.zip'):                continue            backupZip.write(os.path.join(foldername, filename))    backupZip.close()    print('备份成功')

 

 

程序准备好了,我们调用一下:

backupToZip('F:\\test\\AlsPythonBook\\')

我们先看看该目录下都有些什么文件:

接下来我们运行程序将数据备份一下:

py backupToZip.py

 

接着我们看看备份的压缩包数据:

果然备份成功了,这样就不用每次去手动去修改版本了,虽说给论文起名字还是挺有意思的,哈哈

 

小浩同学,这下你可以和你的导师继续肝了,不用客气,请叫我雷峰。

喜欢本文的话,可以关注以下公众号,每天定时更新一篇python学习日记,让我们一起成长!

转载地址:http://janlf.baihongyu.com/

你可能感兴趣的文章
【JavaScript】箭头函数与普通函数的区别
查看>>
前端面试题
查看>>
【JavaScript】常用方法记录
查看>>
C++ 数据存储类型
查看>>
39. Combination Sum
查看>>
剑指Offer 1.二维数组中的查找
查看>>
剑指offer 2.重建二叉树
查看>>
剑指offer 3.二叉树中和为某一值的路径
查看>>
剑指offer 4.替换空格
查看>>
剑指offer 5.从尾到头打印链表
查看>>
剑指offer 6.用两个栈实现队列
查看>>
剑指offer 7.旋转数组的最小数字
查看>>
剑指offer 8-11.斐波那契数列 跳台阶 变态跳台阶 矩形覆盖
查看>>
剑指offer 12.二进制中1的个数
查看>>
剑指offer 13.数值的整数次方
查看>>
剑指offer 14.调整数组顺序使奇数位于偶数前面
查看>>
剑指offer 15.链表中倒数第k个节点
查看>>
剑指offer 16.反转链表
查看>>
剑指offer 17.合并两个排好序的链表
查看>>
剑指offer 18.树的子结构
查看>>