2016-03-12 3 views
0

Я использую эту функцию довольно часто для загрузки новых файлов из общих путей в сети и для зеркалирования определенных каталогов на моем жестком диске к общему пути для доступа других. Он работал достаточно хорошо, пока я недавно не начал работать с папкой, которая находится по всему миру.Проверить последние файлы в общей папке?

Целью этого является просто скопировать любой файл из папки на мой компьютер, который не существует в определенной папке. Это означает, что он проверяет каждый файл, который довольно дорог при работе с большим количеством файлов и медленным сетевым путем. Я буквально нуждаюсь только в этом, чтобы ежедневно запускать данные предыдущих дат.

Например, 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

Является ли это линукс? 'rsync' предназначен для задачи. – tdelaney

+0

Это окна – trench

ответ

1

Вы можете использовать этот

import glob 
import os 
most_recent_file = max(glob.glob(pathname), key=os.path.getctime) 
Смежные вопросы