如何在python中检查文件夹中的新文件

新手上路,请多包涵

我正在尝试创建一个每 10 分钟执行一次的脚本。每次我必须检查我的计算机中的特定文件夹中是否有新文件,如果是,则有一些函数将在此文件上运行以获取一些值。这些值将写入 excel 文件。问题是每次执行此函数时,都会再次生成包含所有文件路径的变量,程序将遍历所有文件。我该如何处理这个问题?谢谢

原文由 Nadav Kiani 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 418
1 个回答

从初始化变量开始:

 savedSet=set()
mypath=… #YOUR PATH HERE

在每个循环结束时,将一组文件名、创建时间和大小以元组格式保存到另一个变量。检索文件时,请执行以下操作:

-检索一组文件路径

nameSet=set()
for file in os.listdir(path):
    fullpath=os.path.join(mypath, file)
    if os.path.isfile(fullpath):
        nameSet.add(file)

-创建元组

retrievedSet=set()
for name in nameSet:
    stat=os.stat(os.path.join(mypath, name))
    time=ST_CTIME
    #size=stat.ST_SIZE If you add this, you will be able to detect file size changes as well.
    #Also consider using ST_MTIME to detect last time modified
    retrievedSet.add((name,time))

- 将集合与保存的集合进行比较以查找新文件

newSet=retrievedSet-savedSet

- 将集合与保存的集合进行比较以查找已删除的文件

deletedSet=savedSet-retrievedSet

- 在名称来自 newSet 的文件上运行你的函数 - 更新保存的集合

savedSet=newSet

原文由 Dorijan Cirkveni 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏