【发布时间】:2021-03-30 12:34:36
【问题描述】:
目录中有各种以日期为名称的 csv 文件(somename_20210202.csv、xyzname_20210305.csv 等)。我想阅读下面提到的给定日期范围内的文件。通过这些日期的列表,我创建了一个文件模式。此外,我想在 glob.glob 中使用该模式来获取文件,但 globbed_files 返回空列表。我的代码在pattern_list 之前是正确的。请提出问题出在哪里。
from datetime import timedelta, date
import pandas as pd
import numpy as np
import glob
import os
import datetime as dt
def daterange(date1, date2):
for n in range(int ((date2 - date1).days)+1):
yield date1 + timedelta(n)
start_dt = date(2020,01,15)
end_dt = date(2020,02,10)
abc = []
weekdays = [5,6]
for dt in daterange(start_dt, end_dt):
if dt.weekday() not in weekdays:
abc.append(dt.strftime("%d-%b-%Y"))
#print(dt.strftime("%d-%b-%Y"))
print(abc)
dir = r"C:\User\Folder"
pattern_list = []
for dates in abc:
pattern = f'*_{dates}.csv' # use wildcards (*)
pattern_list.append(pattern)
print(pattern_list)
for x in pattern_list:
globbed_files = glob.glob(os.path.join(dir, x))
print(globbed_files)
【问题讨论】:
-
您的日期在
abc中的格式为%d-%b-%Y,但您的示例文件名具有不同的模式,即20210202。这些示例文件名是否正确?如果是这样,请更改您的df.strftime(%d-%b-%Y)以匹配该模式。