【python实战系列】论文备份的重要性(五)

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

【python实战系列】论文备份的重要性(五)_第1张图片

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

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

【python实战系列】论文备份的重要性(五)_第2张图片

 

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

【python实战系列】论文备份的重要性(五)_第3张图片

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

 

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

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\\')

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

【python实战系列】论文备份的重要性(五)_第4张图片【python实战系列】论文备份的重要性(五)_第5张图片

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

py backupToZip.py

 

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

【python实战系列】论文备份的重要性(五)_第6张图片

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

【python实战系列】论文备份的重要性(五)_第7张图片

 

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

【python实战系列】论文备份的重要性(五)_第8张图片

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

你可能感兴趣的:(python实战系列)