You should not use Regex to match datetime as that could lead to false positives.
Get files using glob
, iterate over them, check for the datetime pattern with datetime.datetime.strptime
on the space separated third field:
import glob
import datetime
files = glob.iglob('Weekly Score * Report.csv') # Make necessary changes
# on the pattern, if you want
for file_name in files:
try:
datetime.datetime.strptime(file_name.split()[2], '%m.%d.%Y')
except ValueError:
continue
# Matched; do stuffs
print(file_name)
Example:
In [960]: files = ["Weekly Score 07.27.2018 Report.csv", "Weekly Score 08.03.2018 Report.csv", "Weekly Score 15.23.2018 Report.csv"]
In [961]: for file_name in files:
...: try:
...: datetime.datetime.strptime(file_name.split()[2], '%m.%d.%Y')
...: except ValueError:
...: continue
...: print(file_name)
...:
...:
Weekly Score 07.27.2018 Report.csv
Weekly Score 08.03.2018 Report.csv