<p>好问题。这个线程比较老,但我在查找确切的内容时发现了它,我扩展了您的工作,并添加了传递带有目录列表的文件的功能。默认情况下,我不会递归地查找,而是由其他人来测试。希望这有助于任何人查找相同的主题。干得好!</p>
<p>使用python watcher.py文件名运行</p>
<p>其中watcher.py是我所称的脚本,file name是文件名和路径。</p>
<p>我列出了文件中的完整路径,这些路径用换行符分隔
一、 e</p>
<p>C:\路径1<br/>
C: \Path2\subpath1<br/>
C: \PATH3<br/></p>
<pre><code>import logging
import sys
import time
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler
# Attach a logging event AKA FileSystemEventHandler
event_handler = LoggingEventHandler()
# Create Observer to watch directories
observer = Observer()
# take in list of paths. If none given, watch CWD
paths = open(sys.argv[1], 'r') if len(sys.argv) > 1 else '.'
# Empty list of observers .
observers = []
# Base logging configuration
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
# iterate through paths and attach observers
for line in paths:
# convert line into string and strip newline character
targetPath = str(line).rstrip()
# Schedules watching of a given path
observer.schedule(event_handler, targetPath)
# Add observable to list of observers
observers .append(observer)
# start observer
observer.start()
try:
while True:
# poll every second
time.sleep(1)
except KeyboardInterrupt:
for o in observers:
o.unschedule_all()
# stop observer if interrupted
o.stop()
for o in observers:
# Wait until the thread terminates before exit
o.join()
</code></pre>