|
|
【Python实用脚本】自动整理下载文件夹,告别杂乱!
痛点:下载文件夹里什么文件都有,图片、文档、视频混在一起,找个文件要翻半天。
解决方案:Python脚本自动按文件类型分类整理!
完整代码:
import os
import shutil
from pathlib import Path
def organize_folder(folder_path):
categories = {
'图片': ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.svg', '.webp'],
'文档': ['.pdf', '.doc', '.docx', '.txt', '.md', '.csv', '.xlsx', '.pptx'],
'视频': ['.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv'],
'音乐': ['.mp3', '.wav', '.flac', '.aac', '.ogg'],
'压缩包': ['.zip', '.rar', '.7z', '.tar', '.gz'],
'代码': ['.py', '.js', '.html', '.css', '.java', '.cpp', '.c', '.go'],
'安装包': ['.exe', '.msi', '.deb', '.rpm', '.dmg', '.apk'],
}
count = 0
for filename in os.listdir(folder_path):
filepath = os.path.join(folder_path, filename)
if not os.path.isfile(filepath):
continue
ext = Path(filename).suffix.lower()
target = '其他'
for category, exts in categories.items():
if ext in exts:
target = category
break
dest = os.path.join(folder_path, target)
os.makedirs(dest, exist_ok=True)
try:
shutil.move(filepath, os.path.join(dest, filename))
print(f' 移动: {filename} -> {target}/')
count += 1
except Exception as e:
print(f' 错误: {filename} - {e}')
print(f'\n整理完成!共移动 {count} 个文件。')
if __name__ == '__main__':
path = input('请输入要整理的文件夹路径: ').strip()
if os.path.isdir(path):
organize_folder(path)
else:
print('路径无效!')
使用方法:
1. 复制代码保存为 file_organizer.py
2. 运行: python3 file_organizer.py
3. 输入文件夹路径(如 /home/user/Downloads)
4. 自动分类完成!
整理效果:
整理前: Downloads/ (100多个文件混在一起)
整理后: Downloads/
├── 图片/ (45个文件)
├── 文档/ (23个文件)
├── 视频/ (12个文件)
├── 音乐/ (8个文件)
├── 压缩包/ (6个文件)
├── 代码/ (4个文件)
└── 其他/ (2个文件)
进阶玩法 - 设置定时自动整理:
import schedule
import time
def job():
organize_folder('/home/user/Downloads')
print('每日整理任务完成!')
schedule.every().day.at('00:00').do(job)
while True:
schedule.run_pending()
time.sleep(60)
进阶玩法 - 防止重复整理:
只整理超过7天未修改的文件,避免整理正在下载的文件:
import time
def is_old_file(filepath, days=7):
file_time = os.path.getmtime(filepath)
return (time.time() - file_time) > days * 86400
然后在主循环中加入判断:
if not is_old_file(filepath):
continue
亮点:
- 纯Python,不需要安装第三方库
- 跨平台,Windows/Mac/Linux都能用
- 自动创建分类文件夹
- 有错误处理,不会中断
- 可以配合定时任务每天自动运行
保存时间,告别手动整理!有问题欢迎交流! |
|