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

Python使用rarfile解压rar文件报NoneType不可迭代错误如何解决

rarfile解压RAR文件报TypeError: 'NoneType' object is not iterable的解决方案

核心原因

rarfile是Python的封装库,本身不具备RAR解码能力,需要依赖系统安装的UnRAR可执行文件,工具缺失、路径配置错误或代码语法问题都会导致调用工具时返回空值,触发该报错。

排查步骤

  • 第一步:安装并配置UnRAR工具
    Windows端需先安装WinRAR或单独的UnRAR程序,默认安装路径为C:\Program Files\WinRAR,将该路径添加到系统环境变量PATH后,重启IDE或命令行终端使配置生效。不想配置环境变量的话也可以在代码中手动指定工具路径:rarfile.UNRAR_TOOL = r"C:\Program Files\WinRAR\UnRAR.exe"
  • 第二步:修正路径转义问题
    你第二段代码中解压路径的字符串没有加原始字符串标记r,反斜杠会被Python识别为转义符,导致路径解析错误。需要修改为以下任意一种写法:
    • 原始字符串:r"C:\Users\Joanna\Desktop"
    • 正斜杠分隔:"C:/Users/Joanna/Desktop"
    • 转义反斜杠:"C:\\Users\\Joanna\\Desktop"
  • 第三步:校验文件有效性
    手动用WinRAR打开目标RAR文件,确认文件无损坏、密码123可正常解压,同时确认解压路径有写入权限,可先更换为D:\test这类无权限限制的路径测试。
  • 第四步:清除变量命名冲突
    你第一段代码中将变量名命名为rarfile,和导入的库名重名,会覆盖库引用。如果之前运行过第一段代码,需要重启Python解释器清除缓存的变量。

修正后可运行代码

import rarfile

# 手动指定UnRAR路径,无需配置环境变量可选加这行
# rarfile.UNRAR_TOOL = r"C:\Program Files\WinRAR\UnRAR.exe"

with rarfile.RarFile(r"E:\rarFiles\CH6ED-(09_14_2021 Tue-10_10_33.99).rar") as file:
    file.extractall(path=r"C:\Users\Joanna\Desktop", pwd="123")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:15:03