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

Python筛选文件夹中2021年.txt文件仅返回1条结果,如何排查错误?

问题分析

你代码中的逻辑疏漏有以下几点:

  • 核心问题是计数变量i的初始化位置错误:你把i = 1写在了for循环内部,每次遍历新文件时都会把i重置为1,所以判断条件永远是匹配01.2021,只有1月的2021年txt文件能被筛选到。就算你在符合条件后给i加1,下一轮循环又会被重置回1,没有累加效果。
  • 筛选逻辑设计不合理:你不需要通过计数变量匹配月份,只要判断日期段是否以.2021结尾、后缀为txt即可,现有逻辑如果出现缺月(比如没有2月的文件),后续所有月份的文件都会匹配失败。
  • 变量命名不规范:你用了Python内置关键字list作为存储列表的变量名,会覆盖内置的列表类型,后续如果需要调用list()方法会报错。
修正后可运行代码
import os
os.chdir(r"C:\Users\MyName\Desktop\Python-Files\Test_OS")
target_files = []

for file in os.listdir("."):
    # 提前过滤非txt后缀的文件
    if not file.endswith(".txt"):
        continue
    # 加异常捕获避免不符合命名规则的文件导致程序报错
    try:
        date, _ = file.split("-")
    except ValueError:
        continue
    # 判断是否为2021年的文件
    if date.endswith(".2021"):
        target_files.append(file)

print(target_files)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:24:02