Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Tự động hóa đổi tên hàng loạt file ảnh theo định dạng chuẩn bằng Python

Lý Thế Thắng 29/03/2026 12:23 290 lượt xem 3 trả lời

Chào các bạn,

Dạo này mình hay phải làm việc với nhiều file ảnh, mà tên file thì lộn xộn quá, ảnh hưởng đến việc quản lý. Mình tìm hiểu và phát hiện ra một cách khá hay để tự động đổi tên hàng loạt file ảnh theo một định dạng nhất định bằng Python. Chia sẻ với mọi người để ai cần thì tham khảo nhé.

Giả sử mình có một thư mục chứa các file ảnh với tên như sau:

IMG_1234.JPG
DSC05678.jpeg
Photo_9876.PNG

Mình muốn đổi tên chúng thành định dạng YYYYMMDD_HHMMSS.ext (năm_tháng_ngày_giờ_phút_giây.đuôi_mở_rộng). Python có thể làm được điều này rất dễ dàng.

Cách thực hiện

Đầu tiên, bạn cần cài đặt thư viện os (thường có sẵn) và datetime.

Đây là đoạn code cơ bản:

import os
import datetime

folder_path = 'duong_dan_den_thu_muc_anh'

for filename in os.listdir(folder_path):
    if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
        file_path = os.path.join(folder_path, filename)
        
        # Lấy thời gian tạo file
        timestamp = os.path.getctime(file_path)
        dt_object = datetime.datetime.fromtimestamp(timestamp)
        
        # Định dạng lại ngày giờ
        new_filename_base = dt_object.strftime('%Y%m%d_%H%M%S')
        
        # Lấy đuôi mở rộng của file
        file_extension = os.path.splitext(filename)[1]
        
        # Tạo tên file mới
        new_filename = f"{new_filename_base}{file_extension}"
        new_file_path = os.path.join(folder_path, new_filename)
        
        # Đổi tên file
        os.rename(file_path, new_file_path)
        print(f'Đã đổi tên: {filename} -> {new_filename}')

Giải thích

  • os.listdir(folder_path): Lấy danh sách tất cả các file trong thư mục.
  • filename.lower().endswith(...): Kiểm tra xem file có phải là ảnh với các đuôi phổ biến không.
  • os.path.getctime(file_path): Lấy thời gian tạo file (có thể là thời gian sửa đổi tùy hệ điều hành).
  • datetime.datetime.fromtimestamp(timestamp): Chuyển đổi timestamp thành đối tượng datetime.
  • dt_object.strftime('%Y%m%d_%H%M%S'): Định dạng đối tượng datetime theo ý muốn.
  • os.path.splitext(filename)[1]: Lấy đuôi mở rộng của file.
  • os.rename(file_path, new_file_path): Thực hiện đổi tên file.

Bạn chỉ cần thay 'duong_dan_den_thu_muc_anh' bằng đường dẫn thực tế đến thư mục chứa ảnh của bạn. Code này sẽ giúp bạn tiết kiệm rất nhiều thời gian nếu có hàng trăm, hàng nghìn file cần đổi tên.

Chúc các bạn thành công!

5

Tuyệt vời, cảm ơn bạn đã chia sẻ cách tự động hóa đổi tên file ảnh bằng Python! Mình thấy nhiều anh em làm văn phòng hay gặp vấn đề này lắm, nhất là khi làm việc với ảnh chụp từ điện thoại hoặc máy ảnh.

Bản thân mình thì hay dùng các công cụ có sẵn trên Windows hoặc các phần mềm bên thứ ba, nhưng mà dùng Python thế này thì linh hoạt hơn hẳn, có thể tùy chỉnh theo mọi định dạng mong muốn.

Bạn có thể chia sẻ thêm về cách xử lý các trường hợp tên file gốc quá khác biệt không? Ví dụ như có ký tự đặc biệt hoặc tên file quá dài chẳng hạn.

2

Cái này hay quá bạn ơi! Mình cũng hay phải xử lý đống ảnh chụp, đúng là cái vụ đổi tên thủ công mệt thật. Dùng Python thế này vừa nhanh vừa chuyên nghiệp.

Mình cũng có một cách đơn giản hơn một chút cho trường hợp các bạn không rành Python lắm, đó là dùng các phần mềm đổi tên file hàng loạt có sẵn, ví dụ như Advanced Renamer chẳng hạn. Tuy nhiên, nếu cần tùy chỉnh sâu theo thời gian chụp hoặc các thuộc tính khác của ảnh thì đúng là Python là chân ái rồi.

Bạn có thể cho mình xem đoạn code Python đó được không? Mình tò mò muốn xem cách bạn lấy thông tin thời gian chụp từ metadata của ảnh để đổi tên đấy.

4

Cái này hay quá bạn ơi! Mình cũng hay phải xử lý đống ảnh chụp, đúng là cái vụ đổi tên thủ công mệt thật. Dùng Python thế này vừa nhanh vừa chuyên nghiệp.

Mình cũng có một cách đơn giản hơn một chút cho trường hợp các bạn không rành Python lắm, đó là dùng các phần mềm đổi tên file hàng loạt có sẵn, ví dụ như Advanced Renamer chẳng hạn. Tuy nhiên, nếu cần tùy chỉnh sâu theo thời gian chụp hoặc các thuộc tính khác của ảnh thì đúng là Python là chân ái rồi.

Bạn có thể cho mình xem đoạn code Python đó được không? Mình tò mò muốn xem cách bạn lấy thông tin thời gian chụp từ metadata của ảnh để đổi tên đấy.

3

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký