Python无法解压带密码RAR文件:数据读取不足报错排查
解决rarfile解压带密码RAR时的"Failed the read enough data"错误
针对你遇到的问题,以下是几种可行的解决方法:
确保unrar工具正确配置
rarfile库依赖unrar命令行工具才能处理加密RAR文件。Windows下需从WinRAR官网下载安装包,安装后将unrar.exe所在路径(默认是C:\Program Files\WinRAR)添加到系统环境变量PATH中,或者在代码里直接指定路径:import rarfile # 替换为你的unrar.exe实际路径 rarfile.UNRAR_TOOL = r"C:\Program Files\WinRAR\UnRAR.exe" with rarfile.RarFile(file_path) as rar_file: if pw: rar_file.setpassword(pw) rar_file.extractall(unpack_dir)移除密码的encode()处理
部分场景下,rarfile不需要手动对密码进行编码,直接传入字符串即可。修改代码:# 替换原有的pw.encode()为pw rar_file.setpassword(pw)检查文件路径的合法性
如果file_path包含空格、非ASCII字符或相对路径,可能导致文件读取异常。改用绝对路径并使用原始字符串格式:file_path = r"C:\完整的绝对路径\log.rar"升级rarfile库
旧版本的rarfile可能存在兼容性bug,执行命令升级到最新版:pip install --upgrade rarfile再次验证文件的可解压性
即使你确认文件未损坏,仍建议用WinRAR手动解压一次,确保没有隐性的文件损坏或密码匹配问题。
内容的提问来源于stack exchange,提问作者Gkeks
相关产品推荐
相关产品推荐

