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!