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

如何用Python的rarfile库仅解压test.rar中的alex目录及内部文件

解决rarfile仅解压alex目录本身、无法提取内部文件的问题

问题原因

你当前的代码大概率只指定了解压alex目录这单个条目,没有覆盖该目录下的所有子文件和子目录,所以只会生成空的alex文件夹。

解决方案

遍历压缩包内的所有条目,筛选出路径以alex/开头的所有内容(包括目录本身和内部文件/子目录),逐个执行解压操作即可。

示例代码

import rarfile

# 若系统未配置unrar环境变量,需手动指定工具路径(Windows示例)
# rarfile.UNRAR_TOOL = r"C:\Program Files\WinRAR\UnRAR.exe"

with rarfile.RarFile("test.rar", "r") as rf:
    # 筛选所有以'alex/'开头的条目,覆盖目录本身及内部所有内容
    target_entries = [entry for entry in rf.infolist() if entry.filename.startswith('alex/')]
    # 逐个解压到指定路径(这里解压到当前目录,可修改path参数自定义路径)
    for entry in target_entries:
        rf.extract(entry, path="./")

关键说明

  • 用rf.infolist()获取压缩包内所有条目的完整信息,而非仅获取顶层目录名
  • 通过startswith('alex/')筛选条目,确保包含alex目录下的所有子文件、子目录
  • 如果压缩包内的alex目录存在父级路径(比如root/alex/),需调整筛选条件为entry.filename.startswith('root/alex/')
  • 确保依赖安装完成:执行pip install rarfile unrar(Windows用户可能需额外安装WinRAR并配置环境变量,或手动指定UNRAR_TOOL路径)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:25:56