Python监控Windows下的文件变化

来源:互联网 发布:查股网ddx日线数据 编辑:程序博客网 时间:2024/04/30 01:31


windows下监控文件系统的变化,用python很方便。实例代码如下,很简单,也不多说了。


import osimport win32fileimport win32conACTIONS = {  1 : "Created",  2 : "Deleted",  3 : "Updated",  4 : "Renamed from something",  5 : "Renamed to something"}FILE_LIST_DIRECTORY = win32con.GENERIC_READ | win32con.GENERIC_WRITEpath_to_watch = "."hDir = win32file.CreateFile (  path_to_watch,  FILE_LIST_DIRECTORY,  win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE,  None,  win32con.OPEN_EXISTING,  win32con.FILE_FLAG_BACKUP_SEMANTICS,  None)if __name__ == '__main__':    print("123")    while 1:        print("321")        results = win32file.ReadDirectoryChangesW (                                               hDir,  #handle: Handle to the directory to be monitored. This directory must be opened with the FILE_LIST_DIRECTORY access right.                                               1024,  #size: Size of the buffer to allocate for the results.                                               True,  #bWatchSubtree: Specifies whether the ReadDirectoryChangesW function will monitor the directory or the directory tree.                                                win32con.FILE_NOTIFY_CHANGE_FILE_NAME |                                                win32con.FILE_NOTIFY_CHANGE_DIR_NAME |                                                win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES |                                                win32con.FILE_NOTIFY_CHANGE_SIZE |                                                win32con.FILE_NOTIFY_CHANGE_LAST_WRITE |                                                win32con.FILE_NOTIFY_CHANGE_SECURITY,                                               None,                                               None)        for action, file in results:            full_filename = os.path.join (path_to_watch, file)            print (full_filename, ACTIONS.get (action, "Unknown"))




相关参考链接:

http://docs.activestate.com/activepython/2.4/pywin32/win32file__ReadDirectoryChangesW_meth.html

http://docs.activestate.com/activepython/2.5/pywin32/win32file__CreateFile_meth.html

0 0