2013-09-24 33 views
0

我想監視與Python代碼.docx文件如下獲取問題,同時監測.docx文件改變

hDir = win32file.CreateFile (
    dirPath, 
    FILE_LIST_DIRECTORY, 
    win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE, 
    None, 
    win32con.OPEN_EXISTING, 
    win32con.FILE_FLAG_BACKUP_SEMANTICS, 
    None 
) 

while 1: 
    # Wait for a change to occur 
    results = win32file.ReadDirectoryChangesW (
               hDir, 
               1024, 
               False, 
               win32con.FILE_NOTIFY_CHANGE_LAST_WRITE, 
               None, 
               None 
               ) 

當我試圖捕捉到的文件所做的更改,文件名來了與ms word文檔的臨時文件名。如何在Python中捕獲這些臨時文件更改。

+0

看門狗可以爲你做的:https://pypi.python.org/pypi/watchdog – edi9999

+0

在哪個文件這個看門狗應該運行?我將打開不同的文字文檔並對其進行更改。實際上,當我監視Word文檔文件時,獲取一些臨時文件路徑。 –

+0

看門狗應該運行在你正在跟蹤的整個文件夾上。 – edi9999

回答

0

這適用於以下代碼。如果我們可以監視FILE_NOTIFY_CHANGE_SECURITY事件,那麼我們也可以跟蹤所有的臨時文件更改。

readFlags = 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 
# Wait for new data and call ProcessNewData for each new chunk that's written 
while 1: 
    # Wait for a change to occur 
    results = win32file.ReadDirectoryChangesW (
               hDir, 
               1024, 
               False, 
               readFlags, 
               None 
               )