You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python生成含不同日期时间段路径的文件路径列表?

批量收集带日期子目录下的文件路径

你的问题核心是原代码仅能处理单个固定路径,无法遍历/Users/kacper/data_lic/下所有以日期时间命名的子目录,进而批量收集所有content_file文件夹内的文件路径。以下是两种可行的解决方案:

方法一:使用os模块实现遍历筛选

利用目录遍历+路径拼接,筛选出目标路径后收集文件:

import os

# 父目录路径
root_dir = '/Users/kacper/data_lic'
output_file = 'file_paths.txt'

# 一次性打开输出文件,避免频繁IO操作
with open(output_file, 'w', encoding='utf-8') as out_f:
    # 遍历data_lic下的所有子目录
    for dir_name in os.listdir(root_dir):
        dir_path = os.path.join(root_dir, dir_name)
        # 判断当前项是否为目录(默认所有日期格式文件夹都是目标子目录)
        if os.path.isdir(dir_path):
            # 拼接content_file子目录路径
            content_dir = os.path.join(dir_path, 'content_file')
            # 检查content_dir是否存在且为目录
            if os.path.exists(content_dir) and os.path.isdir(content_dir):
                # 遍历content_dir下的所有文件
                for filename in os.listdir(content_dir):
                    file_path = os.path.join(content_dir, filename)
                    if os.path.isfile(file_path):
                        out_f.write(file_path + '\n')

方法二:使用pathlib模块(更简洁)

pathlib的glob方法可直接匹配路径模式,快速定位所有目标文件:

from pathlib import Path

# 父目录路径
root_path = Path('/Users/kacper/data_lic')
output_file = Path('file_paths.txt')

# 匹配所有日期子目录下content_file中的文件
target_files = root_path.glob('*/content_file/*')

# 写入文件,仅保留文件路径(排除子目录)
with open(output_file, 'w', encoding='utf-8') as out_f:
    for file in target_files:
        if file.is_file():
            out_f.write(str(file) + '\n')

关键优化说明

  • 用with语句管理文件:自动处理文件打开/关闭,避免资源泄漏,同时比循环内反复打开关闭效率更高(尤其针对12000个文件的场景)
  • 批量写入:减少IO操作次数,提升处理速度
  • 路径校验:增加目录存在性检查,避免因路径不存在引发报错

内容的提问来源于stack exchange,提问作者Kacper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:40:45