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

Python os.walk遍历多文件夹处理文件代码无运行效果问题

代码存在的核心问题
  • 完全误解了os.walk()的返回逻辑:os.walk()每轮迭代对应一个正在访问的文件夹,三个返回值分别是:当前文件夹路径root、当前文件夹下的子文件夹名列表dirs、当前文件夹下的文件名列表files。原代码的嵌套循环完全没对应上这三个值的含义。
  • 循环对象错误:原代码里for i in dirs拿到的i是单个子文件夹的名字字符串(比如子文件夹叫sample1,i就是字符串"sample1"),后续for file in i实际是在遍历这个字符串的每个字符,根本不是在遍历文件;后续os.path.join(i, files)传入的files是当前层级的整个文件列表,不是单个文件名,根本拼不出合法的文件路径。
  • 无输出的原因:如果你的Training Sets根目录下第一层全是子文件夹、没有直接存放的文件,原代码的逻辑根本不会触发任何合法的文件读取操作,哪怕加了打印语句,如果放在错误的嵌套层级,也不会有任何输出。
修正方案

os.walk()本身就是按顺序遍历文件夹的,处理完当前文件夹下的所有文件后,会自动进入下一个子文件夹迭代,完全匹配你「处理完前一个文件夹全部文件再进入下一个」的需求,修正后代码如下:

import os
import pandas as pd

for root, dirs, files in os.walk("Training Sets"):
    print(f"当前处理文件夹:{root}")
    # 遍历当前文件夹下的所有文件
    for file_name in files:
        # 拼接文件完整路径
        file_path = os.path.join(root, file_name)
        # 可选:过滤非目标格式文件,避免读取报错
        if not file_name.endswith(('.tsv', '.csv', '.txt')):
            continue
        print(f"当前处理文件:{file_path}")
        dataset = pd.read_csv(file_path, sep='\t', header=None)
        trainSet = dataset.values.tolist()
        editedSet = dataset.values.tolist()
        # 后续你的业务处理逻辑直接写在这里即可

如果你不需要递归遍历多层子文件夹,只需要处理Training Sets下第一层子文件夹内的文件,可以不用os.walk(),直接按如下逻辑写即可:

import os
import pandas as pd

root_path = "Training Sets"
# 遍历根目录下所有一级条目
for entry in os.listdir(root_path):
    folder_path = os.path.join(root_path, entry)
    # 跳过非文件夹的条目
    if not os.path.isdir(folder_path):
        continue
    print(f"当前处理文件夹:{folder_path}")
    # 遍历当前子文件夹下的所有文件
    for file_name in os.listdir(folder_path):
        file_path = os.path.join(folder_path, file_name)
        # 跳过子文件夹,只处理文件
        if not os.path.isfile(file_path):
            continue
        if not file_name.endswith(('.tsv', '.csv', '.txt')):
            continue
        print(f"当前处理文件:{file_path}")
        dataset = pd.read_csv(file_path, sep='\t', header=None)
        trainSet = dataset.values.tolist()
        editedSet = dataset.values.tolist()
        # 后续业务逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:45:35