【问题标题】:Python Find a file with closest modified datePython 查找修改日期最近的文件
【发布时间】:2020-04-01 18:49:52
【问题描述】:

我有一个给定的文件,我需要在文件夹结构中找到。文件结构中可以并且将会有重复的文件名,因此我还需要返回与给定日期最接近的修改日期的文件。简单地返回如下所示的最新文件将不符合我的需要。这是无法通过谷歌搜索并可能返回任何有用信息的问题之一。

def findClosestFile(name, path, date):
   result=[]
   for root, dirs, files in os.walk(path):
       if name in files:
           result.append(os.path.join(root, name))
return max(result, key=os.path.getmtime))

【问题讨论】:

  • 1) 创建一个以(mtime, name)为元组的元组列表; 2) 在 mtime 上对该列表进行排序 3) 使用bisect 查找具有所选时间的元组的插入点; 4) 取左/右较近的,这就是答案。

标签: python python-3.x find file-search


【解决方案1】:

如果日期参数应该接近文件日期,则取值

abs(date-os.path.getmtime(your_path))

应该尽可能小。因此,将函数的最后一行更改为

return min(result, key=lambda x:abs(date-os.getmtime(x)))

应该能解决问题。

【讨论】:

  • 谢谢!正是我想要的!我知道一个 for 循环可以做到这一点,但我喜欢尽可能避免循环。
最近更新 更多