上周电脑备份下载了百度云盘10w+的手机图片缓存,5年来的图片,包括以前各种的课程和照片。
手动删除又慢,而且容易删错。
编写个小脚本,一次批量删除。
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
# author:Torry Zhang
# contact: zytwell321@163.com
# datetime:2020/10/2 8:25
# software: PyCharm
"""
电脑上下载了百度云盘的缓存图片太多了,有10w+,写个脚本删除
"""
import os
import shutil
import threading
def delete_file():
"""
按照筛选规则直接删除文件。不做备份
:return:
"""
for file_name in os.listdir(path):
# 遍历path路径下面的文件file_name
if file_name.endswith(docu_type):
if keyword in file_name:
will_del_file = file_name
os.remove(os.path.join(path, will_del_file))
print("==============删除文件:", will_del_file)
def bef_delete_save_files():
"""
使用os.walk(path)查找文件批量删除
:return: 备份+删除历史文件
"""
# 创建文件备份目录path\save
save_path = "{}\save".format(path)
if not os.path.isdir(save_path):
os.makedirs(save_path)
count = -1
# 遍历文件
try:
for foldName, subFolders, fileNames in os.walk(path):
for filename in fileNames:
if filename.endswith(docu_type) and (keyword in filename):
del_name = filename
count = count + 1
# 1.复制文件到新目录,再删除
# shutil.copyfile(os.path.join(path, del_name),
# os.path.join(save_path, del_name)) # copyfile()需file->file
# shutil.copy2(os.path.join(path,del_name), os.path.join(save_path))
# 删除原目录文件
# os.remove(os.path.join(path, del_name))
# 2.或者直接移动文件
shutil.move(os.path.join(path,del_name), os.path.join(save_path))
else:
continue
except Exception as e:
print("程序已处理完毕!")
finally:
print("已处理文件 %d个。" % count)
if __name__ == "__main__":
path = r"G:\BaiduNetdiskDownload" # r原始符的作用,等价于""里面的\\
# path = r"C:\Users\Torry Zhang\Desktop\1\新建文件夹"
keyword = "202008"
docu_type = ".jpg"
# delete_file() # 直接删除文件
# bef_delete_save_files() # 移动文件(备份+删除)
t1 = threading.Thread(target=bef_delete_save_files)
t1.start()
执行完毕:
程序已处理完毕!
已处理文件 7139个。
数据量太大的化,建议考虑多进程处理。