用 Python 实现的效果:
1.找出当前目录下所有修改时间距现在超过3个月的文件;
2.把这些文件重命名,在文件名前面加上时间,比如:demo.txt > 2019-10-31-demo.txt;
3.创建一个文件夹 backup;
4.把所有改名之后的文件,压缩到压缩包里,压缩包的名称加上今天的日期;
5.把压缩包移动到 backup 文件夹里;
6.删掉所有原文件。
实现的思路:
首先算出今天往前3个月的日期;
然后搜索所有修改日期小于这个日期的文件,重命名并把文件地址存到列表里;
创建 backup 文件夹,把列表中的文件压缩到 backup 文件夹下以日期命名的压缩包,并删除。
import os,zipfile,datetime
from datetime import date
now = date.today()
if now.month <= 3:
x_month = now.month + 12 - 3
x_year = now.year - 1
else:
x_month = now.month - 3
x_year = now.year
x_date = datetime.date(x_year,x_month,now.day)
# 计算出三个月之前的日期
f_list = []
for dirpath,dirnames,files in os.walk('./'):
for f_name in files:
f_path = f'{dirpath}/{f_name}'
# 文件完整路径
f_date = date.fromtimestamp(os.stat(f_path).st_mtime)
# 文件日期
if f_date < x_date:
if not f_name.startswith(str(f_date)):
# 判断文件名前面是不是有日期
new_path = f'{dirpath}/{f_date}-{f_name}'
os.rename(f_path,new_path)
print(f'{f_path} --> {new_path}')
else:
new_path = f_path
f_list.append(new_path)
# 写入列表
if not os.path.exists('backup'):
os.mkdir('backup')
with zipfile.ZipFile(f'backup/{now}.zip','w') as z:
for z_name in f_list:
z.write(z_name)
os.remove(z_name)
print(f'backup/{now}.zip 已备份压缩成功')本文用到的知识:
Python 批量创建、复制、移动、删除、重命名文件和文件夹
还有一个关于datatime里data的使用。
更多Python相关文章点击:Python学习日志目录
下一篇:案例:使用Python 对Excel表格文档进行批量处理
- 相关文章 -
Python 数字与数字型运算 - 2020-09-08
Python 基础知识之数据类型 - 2020-09-07
Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07
Python 基础知识之变量 - 2020-09-03
Python 详细安装步骤图解 - 2020-09-01
Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09
Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05
Python 数据分析第三方库 Numpy 的安装和使用 - 2020-02-03
- 文章评论 -
- 最新评论[0条评论] -
版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 |
逍遥峡谷 ·
酷品优选
Copyright©Interstellar Central Occult Agency (I.C.O.A)
本局纯属虚构,如有雷同,纯属巧合