【发布时间】:2021-03-29 16:43:09
【问题描述】:
我有一个巨大的目录,里面有上千个文件
我想获取从晚上 7:30 到早上 7:30 创建的文件,反之亦然。
我一直在使用下面的代码,但它似乎随着文件的增加而变慢。我在 Linux 上运行它。
首先我在这里定义了get_time函数:
def get_time():
tmp_date = datetime.now()
year = tmp_date.year
month = tmp_date.month
day = tmp_date.day
date_start = datetime(year, month, day, 7,30)
date_end = datetime(year, month, day, 19,30)
shift = "Day Shift"
if (date_start < tmp_date) and (tmp_date > date_end):
date_start = datetime(year, month, day, 19,30)
date_end = datetime(year, month, day, 7,30) + timedelta(1)
shift = "Night Shift"
elif (date_start > tmp_date) and (tmp_date < date_end):
date_start = datetime(year, month, day, 19,30) - timedelta(1)
date_end = datetime(year, month, day, 7,30)
shift = "Night Shift"
return date_start, date_end, shift
然后
def get_qc_success(ROOT_FOLDER):
date_start, date_end, shift = get_time()
files = []
ARCHIVE_FOLDER = os.path.join(ROOT_FOLDER,"LOMS","ARCHIVE")
files = os.listdir(ARCHIVE_FOLDER)
for csv in os.listdir(ARCHIVE_FOLDER):
path = os.path.join(ARCHIVE_FOLDER,csv)
filetime = datetime.fromtimestamp(
os.path.getctime(path))
if (date_start < filetime < date_end):
files.append(csv)
len_success = len(files)
return files, len_success, shift
还有其他方法可以让它更快吗?
【问题讨论】: