您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python在遵循模式的文件夹中找到所有文件名

python在遵循模式的文件夹中找到所有文件名

我将采用以下方法。您可以定义一个简单的文件过滤器工厂。

import time

def make_time_filter(start, end, time_format, file_format='index_{time_format:}.csv'):
    t_start = time.strptime(start, time_format)
    t_end = time.strptime(end, time_format)
    ft_fmt = file_format.format(time_format=time_format)

    def filt(fname):
        try:
            return t_start <= time.strptime(fname, ft_fmt) <= t_end
        except ValueError:
            return False

    return filt

现在,您只需做一个谓词即可过滤出所需的日期范围

time_filt = make_time_filter('20091101', '20091201', '%Y%m%d')

然后将此传递给 filter

filter(time_filt, os.listdir(your_dir))

或者说它是一种理解

(fname for fname in os.listdir(your_dir) if time_filt(fname))

正则表达式将更通用,但是您不需要这种正则表达式,因为您的文件名全部遵循简单的模式,您知道该模式必须包含日期。有关该time模块的更多信息,请参阅docs

python 2022/1/1 18:35:46 有246人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶