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

Python用os.walk遍历文件时os.path.join报tuple类型TypeError问题问询

错误原因
  • 核心报错来自os.walk()的错误使用:os.walk()遍历目录时每次迭代返回的是三元组(当前目录路径, 子目录列表, 文件列表),你直接将整个元组传入os.path.join(),触发了类型不匹配错误。
  • 额外逻辑问题:
    1. 循环内重复读取同一个Excel文件,属于无效的重复IO操作,应该放到循环外执行
    2. 代码中with open(...)的逻辑完全没有实际用途,且你要处理的是zip二进制文件,用r模式打开本身就会出错
    3. zipfile.ZipFile.extractall()没有返回值,赋值给img后打印只会输出None
    4. 当前遍历路径是工作目录os.getcwd(),和你声明的要处理的./CODEX/input/路径不匹配
修复后的代码
from pathlib import Path
import pandas as pd
import zipfile
import os

# 你要处理的目标路径
target_path = "./CODEX/input/"
# 提前读取抗体信息Excel,避免循环内重复读取
ab = pd.read_excel("HUBMAP B004 codex antibodies metadata.xlsx")
# TODO: Rename antibody_name column so that it matches channelNames.txt

# 遍历目标路径下所有文件
for root, dirs, files in os.walk(target_path):
    for filename in files:
        # 仅处理zip格式文件
        if filename.endswith(".zip"):
            # 拼接得到zip文件的完整路径
            zip_full_path = os.path.join(root, filename)
            # 解压zip到目标路径
            with zipfile.ZipFile(zip_full_path, 'r') as zip_ref:
                zip_ref.extractall(target_path)
                print(f"已完成解压:{zip_full_path}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:48:03