首页 > 解决方案 > 如何使用python打印目录中缺少的日期文件夹

问题描述

我在文件中有以下文本:demo.txt 其中包含日期文件夹名称

需要识别丢失的日期文件夹

下面是我的日期文件夹:

20210901
20210902
20210903
20210906
20210907
20210908
20210909
202109010
202109012
202109013
202109015
202109017
202109018
202109019

如果您仔细观察缺少日期文件夹2021090420210905,则该文件夹名称需要打印为输出

预期输出:

20210904 
20210905 
20210911
20210914
20210916

我的代码:

listItems=[]
f = open(demo.txt, "r")
   listItems = f.read().splitlines()

cunt=count(listItems)
   
for i in range(cunt):
    for i in list:
        if i == substr(list,1,3):
            print('present')
        else:
            print(list[i])

标签: python

解决方案


见下文(想法是将字符串转换为日期,找到最小值和最大值,在最小值和最大值之间循环并找到“孔”)

from datetime import datetime,timedelta

dates_str = ['20210905','20210904','20210905','20210911','20210913'] 
dates = [datetime. strptime(d, '%Y%m%d') for d in dates_str]
_min = min(dates)
_max = max(dates)
missing = []
while _min < _max:
    _min += timedelta(days=1)
    if _min not in dates:
        missing.append(_min)
print(missing)

输出

[datetime.datetime(2021, 9, 6, 0, 0), datetime.datetime(2021, 9, 7, 0, 0), datetime.datetime(2021, 9, 8, 0, 0), datetime.datetime(2021, 9, 9, 0, 0), datetime.datetime(2021, 9, 10, 0, 0), datetime.datetime(2021, 9, 12, 0, 0)]

推荐阅读