最近有個需求需要在服務器端監控文件創建,當有文件創建時,能夠及時獲取文件名及其路徑。考慮到Python的豐富性和易用性,我們選擇使用Python編寫監控文件創建的程序。
在Python中,可以使用watchdog
庫來實現文件或文件夾的監控。該庫提供了一些類和方法,可以根據需要實現不同的監控功能。要監控文件的創建,我們需要使用watchdog.observers.Observer
類和watchdog.events.FileSystemEventHandler
類。
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class FileCreatedEventHandler(FileSystemEventHandler):
def on_created(self, event):
if not event.is_directory:
print('File Created:', event.src_path)
if __name__ == '__main__':
observer = Observer()
event_handler = FileCreatedEventHandler()
observer.schedule(event_handler, path='/path/to/monitor', recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
在上面的代碼中,我們定義了一個FileCreatedEventHandler
類,繼承自watchdog.events.FileSystemEventHandler
。在該類中,我們只關心on_created
方法,這是一個回調函數,當有文件被創建時調用。在該函數中,我們首先判斷被創建的事件不是目錄,然后打印文件創建的信息。
在if __name__ == '__main__':
段中,我們創建了一個Observer
實例和一個FileCreatedEventHandler
實例。通過observer.schedule(event_handler, path='/path/to/monitor', recursive=True)
方法,我們指定了需要監控的路徑,以及是否遞歸遍歷子目錄。最后,我們通過observer.start()
方法開啟監控,并通過無限循環及observer.stop()
、observer.join()
方法來確保程序一直運行,直到用戶手動停止。
運行上面的Python程序,當有新文件被創建時,會輸出文件創建的信息。這樣,我們就成功實現了Python監控文件創建的功能。