首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读Python前7天的csv

阅读Python前7天的csv
EN

Stack Overflow用户
提问于 2018-04-16 09:04:57
回答 1查看 282关注 0票数 0

我已经编写了一个函数来读取带有特定通配符和路径的文件(例如,这个)。

代码语言:javascript
复制
def i_get_last_week_file(self, par_path, par_file_wildcard, par_datetime):
    proc_datetime = par_datetime - timedelta(weeks=1)
    logger.info('Processing time: %s', str(proc_datetime))
    # file_list = []
    while proc_datetime <= par_datetime:
        sdate = proc_datetime.strftime('%Y_%m_%d-%H')
        for p_file in os.listdir(par_path):
            if fnmatch.fnmatch(p_file, par_file_wildcard + sdate + '*.csv'):
                self.files_list.append(p_file)
        break
    return self.files_list

def get_csv_from_local_weekly(self, par_path, par_wildcard_name, par_date=None, par_time=None):
    if par_date is None:
        par_date = self.file_date
    if par_time is None:
        par_time = self.file_time
    end_datetime = datetime.combine(par_date, par_time)
    a = self.i_get_last_day_file(par_path, par_wildcard_name, end_datetime)
    for i in a:
        try:
            df = pd.read_csv(par_path+''+i, index_col=None, header=0, delimiter=';')
            self.pandas_list.append(df)
        except Exception:
    frame = pd.concat(self.pandas_list)
    self.files_list = []
    self.pandas_list = []
    return frame

问题是,只读取七天前的文件,但我需要从今天开始收集前7天的所有文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-18 09:59:15

那么,您需要创建一个7天的范围,这是一种方法:

代码语言:javascript
复制
import datetime
import re

td = datetime.datetime.today()

lastWeek = [(td - datetime.timedelta(i)).strftime('%Y_%m_%d-%H') for i in range(7)]

for p_file in os.listdir(par_path):
    dateSearch = re.search('\d{4}_\d{2}_\d{2}-\d{2}', pfile)
    if dateSearch:
        dateFound = dateSearch.group(0)
        if dateFound in lastWeek:
            ...

当然,您可以将td更改为日期变量,我只是将其用于测试。

而且,您的proc_datetimewhile循环中似乎没有增量,如果引入增量--您将不需要break

代码语言:javascript
复制
while proc_datetime <= par_datetime:
    sdate = proc_datetime.strftime('%Y_%m_%d-%H')
        for p_file in os.listdir(par_path):
            if fnmatch.fnmatch(p_file, par_file_wildcard + sdate + '*.csv'):
                self.files_list.append(p_file)
    proc_dateimte += datetime.timedelta(days=1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49853441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档