2015-01-07 6 views
2

Я использую пакет python watchdog, чтобы определить, был ли загружен файл (который я делаю в селене). Это код, который я использую, и он успешно обнаруживает создание файла, но мой вызов self.observer.stop() не работает, и программа останавливается. Есть предположения?Неисправность получения наблюдателя Watchdog для остановки/соединения (python)

class MyEventHandler(FileSystemEventHandler): 
    def __init__(self, observer): 
     self.observer = observer 
    def on_created(self, event): 
     print "file created" 
     self.observer.stop() 

def check_download(download_folder): 
    file_location = download_folder 
    print(download_folder) 
    observer = Observer() 
    event_handler = MyEventHandler(observer) 
    observer.schedule(event_handler, file_location) 
    observer.start() 
    observer.join() 
    return 0 

ответ

1

Фиксированный с:

class MyEventHandler(FileSystemEventHandler): 
def __init__(self, observer): 
    self.observer = observer 
def on_created(self, event): 
    if not event.src_path.endswith(".pdf"): 
     global check 
     check = 1 # signal download complete 


def initiate_download(PDF,download_folder): 
file_location = download_folder 
global check 
check = 0 
observer = Observer() 
event_handler = MyEventHandler(observer) 
observer.schedule(event_handler, file_location) 
observer.start() 
PDF.click() 
while(check == 0): 
    time.sleep(1) # wait for download signal 
observer.stop() 
observer.join() 
return 0 

, вероятно, не "правильное" решение, но это, казалось, сделать трюк