Я хотел бы получить список быстро меняющихся файлов, которые новее, чем отметка времени.
Файлы, за которыми я особенно хотел бы следить, - это временные файлы, которые переименовываются после их полной загрузки.
В моем первом испытании я сделал проблему отделимой, т. Е. Сначала (1) перечислил файлы, а затем (2) попытался посмотреть время их изменения:
import os.path
import glob
import datetime
def get_newer_files(ref_time = '2020-05-02 16:27:00.000000'):
path = os.path.expanduser("~") + '\\Downloads\\'
files = [f for f in glob.glob(path + "*.*")]
selected_files = []
for f in files:
dt = os.path.getmtime(f)
dt_string = str(datetime.datetime.fromtimestamp(dt))
if (dt_string > ref_time):
selected_files += [f]
return selected_files
Однако разделяемый подход дает иногда FileNotFoundError
, поскольку временный файл мог исчезнуть после того, как он был впервые перечислен.
Есть ли аккуратный способ последовательно перечислять файлы, которые новее определенной временной метки, без возможности в конечном итоге в таких ошибках?