Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Memantau Perubahan Fail Tertentu dengan Cekap Tanpa Undian?

Bagaimanakah Saya Boleh Memantau Perubahan Fail Tertentu dengan Cekap Tanpa Undian?

Patricia Arquette
Lepaskan: 2024-12-16 02:34:10
asal
601 orang telah melayarinya

How Can I Efficiently Monitor Specific File Changes Without Polling?

Memantau Perubahan Fail Tanpa Undian

Dalam kes di mana anda perlu menjejaki perubahan pada fail log tertentu dalam masa nyata, adalah penting untuk mengelakkan menggunakan teknik pengundian. Pendekatan yang lebih cekap ialah menggunakan pemberitahuan acara sistem fail.

Menggunakan Modul win32file

Fungsi win32file.FindNextChangeNotification dalam pustaka PyWin32 membolehkan anda melihat perubahan fail . Walau bagaimanapun, ia tidak secara langsung memberikan keupayaan untuk memantau fail tertentu.

Memperkenalkan Watchdog

Penyelesaian alternatif ialah menggunakan perpustakaan Watchdog. Ia menawarkan API merentas platform untuk memantau peristiwa sistem fail, termasuk melihat perubahan pada fail atau direktori tertentu.

Begini cara anda boleh menggunakan Watchdog untuk memantau perubahan fail:

import watchdog.observers
import watchdog.events

class FileChangeHandler(watchdog.events.FileSystemEventHandler):
    def on_modified(self, path, filename):
        # Handle file changes here
        print(f"File modified: {filename}")

observer = watchdog.observers.Observer()
observer.schedule(FileChangeHandler(), path, recursive=False)
observer.start()
observer.join()
Salin selepas log masuk

Skrip ini secara automatik akan mengesan perubahan pada fail yang ditentukan dan menggunakan kaedah on_modified dengan yang diubah suai nama fail.

Nota: Menggunakan Watchdog pada pemacu rangkaian yang dipetakan mungkin tidak berfungsi kerana pengehadan cara Windows mengendalikan pemberitahuan perubahan fail pada volum rangkaian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memantau Perubahan Fail Tertentu dengan Cekap Tanpa Undian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan