为什么
关于拷贝QQ、微信、企业微信等软件聊天过程中保存的文件,下午的时候整理资料,发现了去年的文件,直接开搞,把数据给整理处理
逻辑
递归遍历文件夹中的文件,碰到符合条件的后缀文件进行拷贝,如果有重命名的进行添加一个uuid
常见文件格式
需要添加什么可以可以自行进行添加
代码
代码语言:javascript复制# coding=utf-8
# @autor 爱喝水的木子
# @Time : 2022/7/22
# @FileName : 资源汇总.py
import os
import shutil
import uuid
# 常见文件格式
file_suffix = ['txt', 'wav', 'mp3', 'mp4', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf', 'zip', 'rar', '7z', 'gz',
'json', 'xml', 'html', 'htm', 'css', 'js', 'java', 'c', 'cpp', 'h', 'hpp', 'py', 'java', 'c', 'cpp', 'h',
]
# 命名重复的话添加uuid
def rename_file(path):
if os.path.exists(path):
uuid_str = str(uuid.uuid1().hex)
path = path.replace(os.path.splitext(path)[1], "_{}".format(uuid_str) os.path.splitext(path)[1])
return path
else:
return path
def yid_data_to_move(src):
dst = os.path.join(base_dir, os.path.basename(src))
# 校验是否存在
while True:
if os.path.exists(dst):
dst = rename_file(dst)
else:
break
try:
shutil.copyfile(src, dst)
except Exception as e:
print("move failed:{},error source:{}".format(src, str(e)))
# 递归查找符合常见的文件格式的文件
def find_file(path):
for file in os.listdir(path):
temp_file = os.path.join(path, file)
if os.path.isdir(temp_file):
find_file(temp_file)
print("dir:", temp_file)
else:
print("os.path.splitext(temp_file)[1][1:]", os.path.splitext(temp_file)[1][1:])
if os.path.splitext(temp_file)[1][1:] in file_suffix:
print("file:{}".format(temp_file))
yid_data_to_move(temp_file)
if __name__ == '__main__':
# 基础路径
base_source = r""
# 保存的路径
base_dir = r""
find_file(base_source)
print("end of find")