文件分类:
假设某个路径下的文件杂乱不堪,那我们现在要把这些个文件按照文件的类型进行分类。
那我们要把文档的这些个文件放到一个文件夹中
创建"文档"文件夹,收录这些内容:excel文件,doc文件,ppt文件,txt文件
创建"图片"文件夹,收录图片文件:png,jpg,gif
创建"音频"文件夹,收录音频文件:mp3,wma,acc
创建"视频"文件夹,收录视频文件:avi,mp4,mkv
创建"其他"文件夹,收录除此以外的其他文件
import os
import shutil
path = r'D:\test'
file_types = {
'文档': ['xls', 'xlsx', 'doc', 'docx', 'ppt', 'pptx', 'txt'],
'图片': ['png', 'jpg', 'gif'],
'音频': ['mp3', 'wma', 'acc'],
'视频': ['mp4', 'avi', 'mkv'],
'其他': []
}
for file_type in file_types.keys():
if not os.path.exists(path + '\\' + file_type):
os.mkdir(path + '\\' + file_type)
print(f'正在创建{file_type}文件夹。')
else:
print(f'{file_type}文件夹已存在。')
for file in os.scandir(path):
if file.is_file():
file_suffix = file.name.split('.')[-1].lower()
for key, suffixs in file_types.items():
if file_suffix in suffixs:
print(file.path, key)
shutil.move(file.path, path + '\\' + key)
else:
shutil.move(file.path, path + '\\' + key)
import os
from shutil import move
src_path = '' # 待处理文件路径
dst_path = '' # 目标路径
doc_path = dst_path + '/' + '文档'
pig_path = dst_path + '/' + '图片'
audio_path = dst_path + '/' + '音频'
video_path = dst_path + '/' + '视频'
other_path = dst_path + '/' + '其他'
all_class = [doc_path, pig_path, audio_path, video_path, other_path]
for path in all_class: #判断路径是否存在,如果没有则创建
if not os.path.exists(path):
os.mkdir(path)
os.chdir(src_path)
for file in os.listdir(src_path):
if file[-4:0] in ['.excel', '.doc', '.ppt', '.txt']:
file_name = (os.path.splitext(file)[0])
move(src_path + '/' + file_name, doc_path + '/' + file_name)
elif file[-4:0] in ['.png', '.jpg', '.gif']:
file_name = (os.path.splitext(file)[0])
move(src_path + '/' + file_name, pig_path + '/' + file_name)
elif file[-4:0] in ['.mp3', '.wma', '.acc']:
file_name = (os.path.splitext(file)[0])
move(src_path + '/' + file_name, audio_path + '/' + file_name)
elif file[-4:0] in ['.avi', '.mp4', '.mkv']:
file_name = (os.path.splitext(file)[0])
move(src_path + '/' + file_name, video_path + '/' + file_name)
else:
file_name = (os.path.splitext(file)[0])
move(src_path + '/' + file_name, other_path + '/' + file_name)
望采纳