рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдЕрдЬрдЧрд░ 2.5 рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдЬрдЧрд░ 2.7 рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрдм рдореБрдЭреЗ рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
(рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ctypes рдФрд░ windows dll рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдмрддрд╛ рд╕рдХрддрд╛ ...)
рдереНрд░реЗрдб -2 рдореЗрдВ рд╕реАрд╕реА рд╕реА-рд╕реАрдПрдХреНрд╕рдкреНрд╢рди:
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "c:Python27libthreading.py", рд▓рд╛рдЗрди 552, __bootstrap_inner рдореЗрдВ
рд╕реЗрд▓реНрдл.рд░рди ()
рдлрд╝рд╛рдЗрд▓ "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversapi.py", рд▓рд╛рдЗрди 192, рд░рди рдореЗрдВ
self.queue_events(self.timeout)
рдлрд╝рд╛рдЗрд▓ "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserversread_directory_changes.py", рд▓рд╛рдЗрди 80, рдХреНрдпреВ_рдЗрд╡реЗрдВрдЯреНрд╕ рдореЗрдВ
self.watch.is_recursive)
рдлрд╝рд╛рдЗрд▓ "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi_common.py", рдкрдВрдХреНрддрд┐ 130, read_directory_changes рдореЗрдВ
рдХреЛрдИ рдирд╣реАрдВ)
рдлрд╝рд╛рдЗрд▓ "c:Python27libsite-packageswatchdog-0.5.4-py2.7.eggwatchdogobserverswinapi.py", рд▓рд╛рдЗрди 103, _errcheck_bool рдореЗрдВ
ctypes рдмрдврд╝рд╛рдПрдБред WinError ()
WindowsError: [рддреНрд░реБрдЯрд┐ 1] рдЧрд▓рдд рдХрд╛рд░реНрдпред
рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ рдЗрд╕ рджреЛ рд╕рд╛рд▓ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЗ рдХреЛ рдЙрдЫрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛрдЬ 10, рдкрд╛рдпрдерди 2.7 рдФрд░ рд╡реЙрдЪрдбреЙрдЧ 0.8.3 рдХреЗ рд╕рд╛рде рдареАрдХ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред
рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class Handler(FileSystemEventHandler):
def on_any_event(self, event):
print "File changed: %s" % event.src_path
if __name__ == '__main__':
event_handler = Handler()
observer = Observer()
observer.schedule(event_handler, '.', recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
рдкрд░рд┐рдгрд╛рдореА рдЕрдкрд╡рд╛рдж рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
Exception in thread Thread-2:
Traceback (most recent call last):
File "c:\python27\Lib\threading.py", line 801, in __bootstrap_inner
self.run()
File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\api.py", line 146, in run
self.queue_events(self.timeout)
File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\read_directory_changes.py", line 77, in queue_events
winapi_events = read_events(self._handle, self.watch.is_recursive)
File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\winapi.py", line 347, in read_events
buf, nbytes = read_directory_changes(handle, recursive)
File "C:\Users\IEUser\Envs\xtrude\lib\site-packages\watchdog\observers\winapi.py", line 307, in read_directory_changes
raise e
WindowsError: [Error 1] Incorrect function.
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдХреБрдЫ рдиреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдПрдкреАрдЖрдИ рдореЗрдВ рдЦреБрдж рдХреЛ рдЦреЛрдж рд▓рд┐рдпрд╛ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
ReadDirectoryChangesW рдХреЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЛ
рдпрджрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рдХ рдпрд╛ рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди ERROR_INVALID_FUNCTION рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465 (v=vs.85).aspx
рдореИрдВ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╢реЗрдпрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдЧреБрдЧрд▓ рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред
рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдЖрдЬ рд╣реА рдорджрдж рдорд┐рд▓реАред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдЙрдард╛рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖ (рдпрд╛ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рд▓рд┐рдВрдХ)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреНрдпрд╛ рдХреБрдЫ рдиреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдПрдкреАрдЖрдИ рдореЗрдВ рдЦреБрдж рдХреЛ рдЦреЛрдж рд▓рд┐рдпрд╛ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
ReadDirectoryChangesW рдХреЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдпреЛрдВ рдХреЛ
рдореИрдВ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╢реЗрдпрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдЧреБрдЧрд▓ рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред