我经常使用此功能从网络上的共享路径下载新文件,并将硬盘驱动器上的某些目录镜像到共享路径以供其他人访问。在我最近开始使用位于世界各地的文件夹之前,它一直运行良好。
这样做的目的是将文件夹中的任何文件复制到我的计算机中,而该文件在某个文件夹中不存在。这意味着它正在检查处理大量文件和慢速网络路径时相当昂贵的每个文件。我实际上只需要每天运行以捕获以前的日期数据。
例如,filename_2016-03-12.csv是我需要在13日下载的文件。我不一定需要检查所有文件(因为我已经这样做了,理想情况下这应该是每天自动运行)。我只需要最新的文件。我可以将其修改为仅查看最新文件吗?
def copytree(src, dst, symlinks=False, ignore=None):
if not os.path.exists(dst):
os.makedirs(dst)
for item in os.listdir(src):
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
copytree(s, d, symlinks, ignore)
else:
if not os.path.exists(d) or os.stat(s).st_mtime - os.stat(d).st_mtime > 1:
shutil.copy2(s, d)
答案 0 :(得分:1)
您可以使用此
import glob
import os
most_recent_file = max(glob.glob(pathname), key=os.path.getctime)