最佳实践 - 什么是观看目录的最佳方式

问题描述:

我需要设置一个脚本来监视某个文件夹的某种类型的文件。我做了这个代码,但我想知道是否有更好的方法?最佳实践 - 什么是观看目录的最佳方式

import os 


def listAppleseedFiles(directory_path): 
    directory_entities = os.listdir(directory_path) 
    files = [] 
    appleseed_files = [] 
    for entity in directory_entities: 
     file_path = os.path.join(directory_path, entity) 
     if os.path.isfile(file_path): 
      if os.path.splitext(file_path)[1] == '.appleseed': 
       appleseed_files.append(file_path) 

    return appleseed_files 

while True: 
    for file in listAppleseedFiles('/dir_name'): 

     doSomething() 
+0

可能重复http://*.com/questions/182197/how -DO-I-手表一个文件换的变化,使用的Python) – 2012-08-09 11:26:52

尝试Watchdog!从他们的例子:

import time 
from watchdog.observers import Observer 
from watchdog.events import LoggingEventHandler 

event_handler = LoggingEventHandler() 
observer = Observer() 
observer.schedule(event_handler, path='/dir_name', recursive=True) 
observer.start() 
try: 
    while True: 
     time.sleep(1) 
except KeyboardInterrupt: 
    observer.stop() 
observer.join() 

我用watcher一封来自PyPI成功,它是围绕API ReadDirectoryChangesW的包装。下面是一个例子(PY 3,但在其上运行的Py2):

from watcher import * 
import time 

def callback(*stuff): 
    if stuff[0] == FILE_ACTION_REMOVED: 
     print(stuff[1],"deleted") 
    else: 
     print(stuff) 

w = Watcher('C:\\' , callback) 
w.flags = FILE_NOTIFY_CHANGE_FILE_NAME 
w.start() 

while True: 
    time.sleep(100) 
的[?我如何观看使用Python更改的文件(