首页 > 解决方案 > 在 Python 中仅打印具有前一天日期的文件

问题描述

Python 新手。下面打印昨天的日期(在本例中为 08132018):

from datetime import date, timedelta

yesterday = date.today() - timedelta(1)
print yesterday.strftime(‘%m%d%Y’)

有一个每天生成的文件目录,文件名中包含前一天的日期。

import glob2
import os

array = (glob2.glob(“C:/somewhere/*.txt”))

for line in array
      print line 

这将打印该目录中的所有 txt 文件,但我只想要名称中包含前一天日期的 txt 文件。我有点不确定如何将我发布的顶部(日期)与底部合并。

示例文件名:

labels08132018
clothli08132018
jonathan08122018
exam08092018

我只想打印前两个。

标签: python

解决方案


问题尚不清楚,但我认为您想要的只是检查文件名是否包含日期。所以,我会为此写一个正则表达式,如果它被过度设计,请原谅我。

import re

pattern = r'(\d{1,12})(\d{1,31})(\d{0001,2018})'
array = ['not_supposed_to_match','labels08132018', 'clothli08132018','jonathan08122018','exam08092018']
matched_files = []
for line in array:
    match = re.search(pattern, line)
    if match != None:
        matched_files.append(line)
print(matched_files)

希望这能回答你的问题。


推荐阅读