Python在文件操作方面非常強大,其內置的os模塊可以完成大部分的文件操作任務。當需要實時監聽某個文件目錄,可以借助Python的watchdog庫。
為了監聽文件目錄,需要創建一個文件監視器類,該類需要實現watchdog庫的FileSystemEventHandler類。
import time from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class FileMonitor(FileSystemEventHandler): def on_modified(self, event): print(f"文件 {event.src_path} 被修改!") def on_created(self, event): print(f"文件 {event.src_path} 被創建!") def on_deleted(self, event): print(f"文件 {event.src_path} 被刪除!") def on_moved(self, event): print(f"文件 {event.src_path} 被移動到 {event.dest_path}!") if __name__ == '__main__': path = input("請輸入文件目錄:") event_handler = FileMonitor() observer = Observer() observer.schedule(event_handler, path, recursive=True) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()
在上面的代碼中,FileMonitor類繼承了FileSystemEventHandler類并實現了on_modified、on_created、on_deleted和on_moved四個方法來處理文件事件。在主程序中,創建了一個Observer對象,并指定要監視的文件目錄以及FileMonitor類來處理文件事件,最后啟動Observer對象并進入循環等待事件的發生。
無論是在Linux還是在Windows系統上,此代碼都可以正確監聽文件目錄,并實時輸出文件事件。此外,我們還可以在FileMonitor類中添加其他需要的方法和屬性來完成更復雜的任務。