7n25gSnP 发表于 2026-3-22 17:03:03

Python Auto File Organizer - Organize Downloads in 10 Min

Quick Start: Organize Files in 10 Minutes

What You Need:
- Python 3.6+
- No extra libraries needed (built-in modules only)

The Problem: Your Downloads folder is a mess. Let Python fix it automatically.

Complete Code:

import os, shutil
from pathlib import Path

def organize_folder(folder_path):
    categories = {
      'Images': ['.jpg','.jpeg','.png','.gif','.bmp','.svg','.webp'],
      'Documents': ['.pdf','.doc','.docx','.txt','.md','.csv','.xlsx'],
      'Videos': ['.mp4','.avi','.mkv','.mov','.wmv'],
      'Audio': ['.mp3','.wav','.flac','.aac','.ogg'],
      'Archives': ['.zip','.rar','.7z','.tar','.gz'],
      'Code': ['.py','.js','.html','.css','.java','.cpp','.c'],
      'Programs': ['.exe','.msi','.deb','.rpm','.app'],
    }
   
    stats = {'moved': 0, 'errors': 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_folder = 'Other'
      for category, extensions in categories.items():
            if ext in extensions:
                target_folder = category
                break
      dest = os.path.join(folder_path, target_folder)
      os.makedirs(dest, exist_ok=True)
      try:
            shutil.move(filepath, os.path.join(dest, filename))
            print(f"Moved: {filename} -> {target_folder}/")
            stats['moved'] += 1
      except Exception as e:
            print(f"Error: {filename} - {e}")
            stats['errors'] += 1
   
    print(f"Done! Moved {stats['moved']} files.")

if __name__ == '__main__':
    target = input("Enter folder path: ").strip()
    if os.path.isdir(target):
      organize_folder(target)

How It Works:
1. Scans all files in target folder
2. Checks file extension against category list
3. Creates subfolder for each category
4. Moves files into matching folders

Usage: python3 file_organizer.py

Result:
Before: Downloads/ (100+ mixed files)
After:Downloads/
      - Images/   (45 files)
      - Documents/(23 files)
      - Videos/   (12 files)
      - Audio/      (8 files)
      - Archives/   (6 files)
      - Code/       (4 files)
      - Other/      (2 files)

Bonus: Add to crontab for daily auto-organize:
0 0 * * * python3 /path/to/file_organizer.py /home/user/Downloads

Key Features:
- Pure Python, no pip install needed
- Cross-platform (Windows/Mac/Linux)
- Error handling included
- Auto creates folders

Save time. Automate boring tasks. Happy coding!
页: [1]
查看完整版本: Python Auto File Organizer - Organize Downloads in 10 Min