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

Python 2.7中如何循环切换工作目录并读取多目录文件

如何用Python遍历多个目录处理文件

嘿Javier,作为Python新手遇到这种问题太正常啦,我来给你几个简单易懂的方案,帮你搞定这个需求~

方法一:使用os模块(基础入门)

os是Python内置的文件系统处理模块,逻辑直观,很适合新手入门:

import os

# 定义根目录的路径
root_path = "/home/Documents/foamOutput"

# 遍历0到6的文件夹(你的文件夹是连续数字0-6,用range(7)刚好覆盖)
for folder_num in range(7):
    # 拼接当前文件夹的完整路径
    folder_path = os.path.join(root_path, str(folder_num))
    
    # 先检查文件夹是否存在,避免报错
    if not os.path.isdir(folder_path):
        print(f"文件夹 {folder_num} 不存在,跳过")
        continue
    
    # 遍历当前文件夹里的所有内容
    for filename in os.listdir(folder_path):
        # 拼接文件的完整路径
        file_path = os.path.join(folder_path, filename)
        
        # 确保是文件(不是嵌套的子文件夹)
        if os.path.isfile(file_path):
            # 这里写你的文件处理逻辑,比如读取内容、分析数据等
            print(f"正在处理文件: {file_path}")
            # 示例:读取文件内容
            with open(file_path, 'r') as f:
                content = f.read()
                # 这里可以添加你的自定义处理代码

方法二:使用pathlib模块(现代推荐)

Python3.4+引入了pathlib,用面向对象的方式处理路径,代码更简洁易读,推荐你尝试这种更现代的写法:

from pathlib import Path

# 定义根目录路径
root_path = Path("/home/Documents/foamOutput")

# 遍历0到6的文件夹
for folder_num in range(7):
    folder_path = root_path / str(folder_num)
    
    # 检查文件夹是否存在
    if not folder_path.is_dir():
        print(f"文件夹 {folder_num} 不存在,跳过")
        continue
    
    # 遍历文件夹里的所有文件(用glob('*')匹配所有内容,再过滤出文件)
    for file_path in folder_path.glob('*'):
        if file_path.is_file():
            print(f"正在处理文件: {file_path}")
            # 示例:读取文件内容
            content = file_path.read_text()
            # 添加你的处理逻辑

额外小提示

  • 如果你的文件夹名字不是连续数字,需要自动识别根目录下所有子文件夹,可以这样调整:
    # os模块写法
    for folder_name in os.listdir(root_path):
        folder_path = os.path.join(root_path, folder_name)
        if os.path.isdir(folder_path):
            # 后续处理逻辑和之前一致
    
    # pathlib写法
    for folder_path in root_path.iterdir():
        if folder_path.is_dir():
            # 后续处理逻辑和之前一致
    
  • 处理文件时建议加上异常捕获,避免因文件无法读取等问题导致程序崩溃:
    try:
        with open(file_path, 'r') as f:
            content = f.read()
    except Exception as e:
        print(f"处理文件 {file_path} 出错: {e}")
    

希望这些代码能帮到你,有其他问题随时问哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:44:10