Nad*_*ani 5 python automation schedule
我正在尝试创建一个每 10 分钟执行一次的脚本。每次我必须检查计算机中特定文件夹中是否有新文件,如果有,则有一些函数会在此文件上运行以获得一些值。这些值将写入 excel 文件。问题是每次执行这个函数时,都会再次生成包含所有文件路径的变量,程序会遍历所有文件。我该如何处理这个问题?谢谢
小智 8
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_any_event(self, event):
print(event.event_type, event.src_path)
def on_created(self, event):
print("on_created", event.src_path)
print(event.src_path.strip())
if((event.src_path).strip() == ".\test.xml"):
print("Execute your logic here!")
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path='.', recursive=False)
observer.start()
while True:
try:
pass
except KeyboardInterrupt:
observer.stop()
Run Code Online (Sandbox Code Playgroud)
小智 5
首先初始化变量:
\n\nsavedSet=set()\nmypath=\xe2\x80\xa6 #YOUR PATH HERE\nRun Code Online (Sandbox Code Playgroud)\n\n在每个周期结束时,将一组文件名、创建时间和大小以元组格式保存到另一个变量中。检索文件时,请执行以下操作:
\n\n- 检索一组文件路径
\n\nnameSet=set()\nfor file in os.listdir(path):\n fullpath=os.path.join(mypath, file)\n if os.path.isfile(fullpath):\n nameSet.add(file)\nRun Code Online (Sandbox Code Playgroud)\n\n-创建元组
\n\nretrievedSet=set()\nfor name in nameSet:\n stat=os.stat(os.path.join(mypath, name))\n time=ST_CTIME\n #size=stat.ST_SIZE If you add this, you will be able to detect file size changes as well.\n #Also consider using ST_MTIME to detect last time modified\n retrievedSet.add((name,time))\nRun Code Online (Sandbox Code Playgroud)\n\n-将设置与保存的设置进行比较以查找新文件
\n\nnewSet=retrievedSet-savedSet\nRun Code Online (Sandbox Code Playgroud)\n\n- 将设置与保存的设置进行比较以查找已删除的文件
\n\ndeletedSet=savedSet-retrievedSet\nRun Code Online (Sandbox Code Playgroud)\n\n- 在名称来自 newSet 的文件上运行函数\n-更新保存的集
\n\nsavedSet=newSet\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
12066 次 |
| 最近记录: |