最佳实践 - 什么是观看目录的最佳方式
问题描述:
我需要设置一个脚本来监视某个文件夹的某种类型的文件。我做了这个代码,但我想知道是否有更好的方法?最佳实践 - 什么是观看目录的最佳方式
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()
答
尝试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更改的文件(
可能重复http://stackoverflow.com/questions/182197/how -DO-I-手表一个文件换的变化,使用的Python) – 2012-08-09 11:26:52