Menu

Tự động hóa cập nhật file Excel theo thời gian thực với Python và `watchdog`

Kinh Nam Thế 11/06/2026 02:14 515 lượt xem 2 trả lời

Chào các anh chị em trong diễn đàn,

Dạo này công việc của mình hay phải xử lý các file Excel được cập nhật liên tục từ một hệ thống khác. Mỗi lần file thay đổi là lại phải chạy tay một loạt script Python để xử lý, khá là mất thời gian và dễ quên.

Mình tình cờ tìm hiểu và biết đến thư viện watchdog của Python. Thư viện này cho phép mình theo dõi sự thay đổi của một thư mục hoặc một file cụ thể. Khi có bất kỳ thay đổi nào (tạo mới, sửa đổi, xóa), watchdog sẽ kích hoạt một hàm mà mình đã định nghĩa sẵn.

Với watchdog, mình đã viết một script nhỏ để theo dõi thư mục chứa file Excel cần xử lý. Cứ mỗi khi file Excel trong thư mục đó được cập nhật, script sẽ tự động chạy các tác vụ xử lý dữ liệu và cập nhật lại file theo định dạng mong muốn. Điều này giúp mình tiết kiệm được kha khá thời gian và đảm bảo dữ liệu luôn được xử lý kịp thời.

Đây là một ví dụ đơn giản về cách sử dụng watchdog:

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class ExcelChangeHandler(FileSystemEventHandler):
    def on_modified(self, event):
        if not event.is_directory and event.src_path.endswith('.xlsx'):
            print(f'File {event.src_path} đã được sửa đổi. Bắt đầu xử lý...')
            # Gọi hàm xử lý file Excel của bạn ở đây
            process_excel_file(event.src_path)

def process_excel_file(filepath):
    # Code xử lý file Excel bằng pandas, openpyxl, v.v.
    print(f'Đã xử lý xong file: {filepath}')

if __name__ == "__main__":
    path = "/path/to/your/excel/folder"  # Thay thế bằng đường dẫn thư mục của bạn
    event_handler = ExcelChangeHandler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

Hy vọng chia sẻ này hữu ích cho anh chị em nào đang gặp tình huống tương tự. Có ai đã từng dùng watchdog hoặc có giải pháp nào khác để tự động hóa việc này không, cùng thảo luận nhé!

5

Hay quá bạn ơi! Mình cũng đang đau đầu vụ này, file excel cập nhật liên tục mà cứ phải click chạy script hoài. Thấy bạn chia sẻ vụ watchdog này đúng là cứu cánh. Mình cũng đang nghĩ đến việc dùng nó để theo dõi thư mục chứa file.

Cho mình hỏi thêm là khi có thay đổi, bạn xử lý luôn trong script Python hay là chỉ đơn giản là trigger một cái gì đó để Excel tự cập nhật thôi? Mình đang phân vân không biết nên đi theo hướng nào hiệu quả hơn.

3

Chào bạn,

Ý tưởng dùng watchdog để tự động hóa việc xử lý file Excel theo thời gian thực rất hay! Mình cũng từng gặp tình huống tương tự, việc chạy script thủ công đúng là tốn công thật.

Cho mình hỏi thêm chút là bạn đang dùng watchdog để theo dõi thay đổi ở thư mục chứa file Excel hay là theo dõi trực tiếp từng file Excel vậy? Và bạn có gặp khó khăn gì trong việc xử lý các sự kiện thay đổi (ví dụ: phân biệt khi nào file đang được ghi đè, khi nào là sửa đổi thông thường) không? Chia sẻ thêm kinh nghiệm của bạn nhé!

5

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

Đăng nhập Đăng ký