用python一键批量压缩&备份文件,不必再用鼠标点点点

枫铃4年前 (2021-07-09)Python255

很多人会定期压缩备份一下自己的文件,但每次一个个文件压缩移动很麻烦,整理耗时又费力。

面对这些问题,只要用Python的zipfile包,几句代码就够了,大大提高了工作效率!

今天我们就来教大家如何使用python批量压缩备份文件吧!

1.首先打开你想批量备份的文件,可以看到文件很多,备份不易:

在这里插入图片描述

2.导入zipfile,这个是用来做压缩和解压的Python模块;

导入os模块,主要是获取文件路径,创建文件等操作;

导入time模块,主要是用来获取当前的日期:

import  zipfile
import os
import time

3.指定需要压缩的文件夹路径(其内的每一个文件都会被压缩并保存在指定的目的地文件夹);

需要说明的是字符串前面的字母 r是用来防转义的,也就是说字符串中的斜杠只是单纯的斜杠不是转义字符。

start_dir = r"C:\Users\admin\Desktop\批量备份打包\压缩测试"  

4.指定用来存放压缩文件的目的地文件夹,该文件夹下会根据压缩日期创建子文件夹:

target_dir = r"C:\Users\admin\Desktop\批量备份打包\备份目的地文件夹"

5.在目的地文件夹下创建子文件夹,当然目前只是一个代表路径的字符串,真正创建文件夹需要

os.mkdir(today);
os.sep 代表在路径中的一个 \ ;

其中time.strftime(’%Y%m%d’) 代表当前的年月日,%Y代表年,%m代表月份,%d代表日期:

 today = target_dir + os.sep + time.strftime('%Y%m%d')

6.如果当前日期的文件夹不存在那么就创建一个,如果存在就不需要创建了:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
if not os.path.exists(today):

    os.mkdir(today)

    print('Successfully created directory', today)

7.取出start_dir文件夹下的每个文件进行压缩备份;
os.listdir(start_dir)是start_dir文件夹下的每个文件的名字构成的列表:

for item in os.listdir(start_dir):

8.在目的地文件夹下创建压缩后文件夹的名字,例如"C:\Users\admin\Desktop\批量备份打包\备份目的地文件夹\20191008\1.txt.zip":

file_news = today+os.sep+item+'.zip' 

9.通过对象对file_news进行写入操作,file_news代表的是压缩文件名,'w’代表写入文件:

z = zipfile.ZipFile(file_news,'w') #参数一:文件夹名

10.从开始文件夹里面拿出文件,写入到对象z;
start_dir+os.sep+item代表的是要写入z的文件是哪一个;
item代表的是只写入文件本身而不包含其完整的路径:

z.write(start_dir+os.sep+item,item)

11.完成写入后关闭z对象,报告显示item压缩成功:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
z.close()


 print(item)

 print ('压缩成功')

12.压缩结果:

在这里插入图片描述

这段代码是一套模板,不管有多少文件需要压缩备份,只需根据你的需要修改压缩备份的文件夹路径和目的地文件夹路径即可,一键实现批量文件压缩备份,是不是解放了更多时间,可以投入到更有意义的事情上呢?

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。