📂 Tự động tổ chức tệp tin với Python 🚀
Quản lý một thư mục Tải về lộn xộn là một thử thách mà tất cả chúng ta đều phải đối mặt. Hình ảnh, tài liệu, video, và các tệp tin ngẫu nhiên tích tụ nhanh chóng, khiến việc tìm kiếm những gì bạn cần trở nên khó khăn. Đó là lúc tự động hóa bằng Python phát huy tác dụng!
Trong bài viết này, tôi sẽ hướng dẫn bạn cách tôi xây dựng một kịch bản tổ chức tệp tin bằng Python tự động phân loại các tệp tin thành các thư mục con như Hình ảnh, Tài liệu, Video, Âm thanh, Tệp lưu trữ, Cấu hình, và nhiều hơn nữa.
📌 Đặt vấn đề
Tạo một kịch bản Python tự động tổ chức các tệp tin trong một thư mục theo loại tệp — đưa hình ảnh, tài liệu, video, v.v. vào các thư mục con riêng biệt.
🚀 Tính năng của kịch bản
- ✅ Tự động phát hiện loại tệp qua phần mở rộng
- ✅ Tạo thư mục con nếu chúng chưa tồn tại
- ✅ Di chuyển các tệp tin vào thư mục tương ứng
- ✅ In nhật ký để xác nhận (tệp đã di chuyển / bị bỏ qua)
- ✅ Dễ dàng tùy chỉnh với các phần mở rộng mới
🛠️ Các loại tệp được hỗ trợ
- Hình ảnh →
.jpg
,.jpeg
,.png
,.gif
- Tài liệu →
.pdf
,.docx
,.txt
,.xlsx
,.pptx
- Video →
.mp4
,.avi
,.mkv
- Âm thanh →
.mp3
,.wav
- Tệp lưu trữ →
.zip
,.rar
- Kịch bản →
.py
,.js
,.md
- Cấu hình →
.ini
- Ứng dụng →
.exe
📜 Mã Python
Dưới đây là mã kịch bản hoàn chỉnh:
python
import os
import shutil
def organize_folder(folder_path):
# Định nghĩa các loại tệp
file_types = {
'Hình ảnh': ['.jpg', '.jpeg', '.png', '.gif'],
'Tài liệu': ['.pdf', '.docx', '.txt', '.xlsx', '.pptx'],
'Video': ['.mp4', '.avi', '.mkv'],
'Âm thanh': ['.mp3', '.wav'],
'Tệp lưu trữ': ['.zip', '.rar'],
'Kịch bản': ['.py', '.js', '.md'],
'Cấu hình': ['.ini'],
'Ứng dụng': ['.exe']
}
print(f"📂 Đang tổ chức các tệp trong: {folder_path}\n")
files_moved = 0
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
if os.path.isfile(file_path):
_, ext = os.path.splitext(filename)
moved = False
for folder, extensions in file_types.items():
if ext.lower() in extensions:
target_folder = os.path.join(folder_path, folder)
os.makedirs(target_folder, exist_ok=True)
shutil.move(file_path, os.path.join(target_folder, filename))
print(f"✅ Đã di chuyển: {filename} → {folder}/")
files_moved += 1
moved = True
break
if not moved:
print(f"⚠️ Bỏ qua (Loại không xác định): {filename}")
print(f"\n✨ Hoàn tất! Tổng số tệp đã di chuyển: {files_moved}")
# Chạy kịch bản
organize_folder(r"C:\\Users\\imran\\Downloads")
📸 Ví dụ đầu ra
📂 Đang tổ chức các tệp trong: C:\Users\imran\Downloads
✅ Đã di chuyển: photo.jpg → Hình ảnh/
✅ Đã di chuyển: resume.docx → Tài liệu/
✅ Đã di chuyển: movie.mp4 → Video/
⚠️ Bỏ qua (Loại không xác định): setup.tmp
✨ Hoàn tất! Tổng số tệp đã di chuyển: 5
🎯 Tại sao kịch bản này hữu ích?
- Giữ cho thư mục Tải về của bạn gọn gàng và ngăn nắp
- Tiết kiệm thời gian tìm kiếm tệp
- Tăng năng suất với tự động hóa
- Hoạt động trên Windows, Mac và Linux
🔮 Cải tiến tương lai
- Thêm một thư mục Khác cho các loại tệp không xác định
- Lập lịch kịch bản với Task Scheduler (Windows) hoặc Cron Jobs (Linux/Mac)
- Thêm giao diện GUI cho người dùng không chuyên
🙌 Những suy nghĩ cuối cùng
Dự án này là một ví dụ đơn giản nhưng mạnh mẽ về cách tự động hóa bằng Python có thể đơn giản hóa các tác vụ hàng ngày. Chỉ với một vài dòng mã, bạn có thể biến một thư mục lộn xộn thành một thư mục được tổ chức tốt.
💡 Nếu bạn muốn thử nghiệm, hãy kiểm tra repo GitHub tại đây 👉 python-file-organizer-automation
✍️ Tác giả: Imran Ahmad
🚀 Đam mê tự động hóa Python, Selenium, và lập trình kịch bản để tăng năng suất.