【发布时间】:2018-08-06 08:16:10
【问题描述】:
如何在不爬取整个搜索目录的情况下,根据比 Python 中的某些查询日期更新的过滤来查找文件?例如,在 Bash/*nix(在 MacOS 上测试)中,我可以执行 find . -newermt '2018-01-17 03:28:46',它快速 搜索仅比指定查询日期更新的文件。在 Python 中我可以做到:
import os
import datetime
query_date = datetime.datetime.fromtimestamp(int(float(1516188526532974000)/1000000000))
results = []
for root, dirs, files in os.walk('/Users/Nafty/Sync/sxs'):
for filename in files:
path = os.path.join(root, filename)
file_mtime = datetime.datetime.fromtimestamp(os.stat(path).st_mtime)
if(file_mtime > query_date):
results.append(path) # yield path?
return results
但是,这需要更长的时间,而且似乎无论如何都要遍历整个目录。
有没有办法在 Python 中进行快速搜索版本的日期过滤目录爬取,类似于 Bash 示例?
【问题讨论】:
-
你试过用python3.5吗? stackoverflow.com/questions/32455262/…
-
实际上似乎 os.stat 是减速因素 - mail.python.org/pipermail/python-list/2009-June/540505.html
标签: python bash directory find subdirectory