py7zr解壓文件時報錯CrcError(crc32, f.crc32, f.filename)

報錯信息

Traceback (most recent call last):File "/home/hp/project/test/file_util.py", line 130, in extract_archive_7zarchive.extract(targets=[fixed_file], path=output_dir, recursive=True)File "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 1025, in extractself._extract(path, targets, return_dict=False, recursive=recursive)File "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 634, in _extractself.worker.extract(File "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 1266, in extractself.extract_single(File "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 1354, in extract_singleraise eFile "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 1351, in extract_singleself._extract_single(fp, files, path, src_end, q, skip_notarget)File "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 1388, in _extract_singleself._check(fp, just_check, src_end)File "/home/hp/miniconda3/envs/celery/lib/python3.10/site-packages/py7zr/py7zr.py", line 1445, in _checkraise CrcError(crc32, f.crc32, f.filename)
py7zr.exceptions.CrcError: (599713723, 4127376704, 'valid/0001_JPEG.rf.9fcffd546df665288bd059e2975eb307.jpg')

代碼如下:

def extract_archive_7z(archive_path: str, output_dir: str = ".", password: str = None):"""解壓壓縮文件使用 py7zr 解壓 7z 格式壓縮包,支持中文文件名。"""try:with py7zr.SevenZipFile(archive_path, mode='r', password=password) as archive:# 獲取所有文件列表(用于進度條)all_files = archive.getnames()# 創建目標目錄(若不存在)os.makedirs(output_dir, exist_ok=True)for file in tqdm(all_files, desc=f"解壓 {os.path.basename(archive_path)}", unit="file"):fixed_file = fix_encoding(file)archive.extract(targets=[fixed_file], path=output_dir)logger.info(f"{archive_path} 解壓完成")except Exception as e:logger.error(f"解壓失敗 {archive_path}: {e}", exc_info=True)

錯誤原因

py7zr 的archive.extract() 方法無法多次被調用

以下是修改后的代碼:

def extract_archive_7z(archive_path: str, output_dir: str = ".", password: str = None):"""解壓壓縮文件使用 py7zr 解壓 7z 格式壓縮包,支持中文文件名。"""try:with py7zr.SevenZipFile(archive_path, mode='r', password=password) as archive:# 獲取所有文件列表(用于進度條)all_files = archive.getnames()# 創建目標目錄(若不存在)os.makedirs(output_dir, exist_ok=True)targets = []for file in tqdm(all_files, desc=f"解壓 {os.path.basename(archive_path)}", unit="file"):targets = targets.append(file)archive.extract(targets=targets, path=output_dir) # 或使用extractAll()logger.info(f"{archive_path} 解壓完成")except Exception as e:logger.error(f"解壓失敗 {archive_path}: {e}", exc_info=True)

參考:
https://github.com/miurahr/py7zr/issues/313

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80644.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80644.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80644.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物理:由基本粒子組成的個體能否提煉和重組?

個體差異源于基本粒子組合的復雜性與隨機性,這一假設若成立,確實可能為生物醫學帶來革命性突破——但需要突破技術、理論與系統層級的多重壁壘。以下從科學邏輯與技術路徑展開分析: 一、隨機組合中的共性與穩定結構 1. 自然界的自組織規律 涌現性(Emergence):盡管粒子組…

動態路由EIGRP的配置

動態路由EIGRP的配置 動態路由EIGRP:增強內部網關協議 為何收斂快、不成環? 路由計算的無環路和路由的收斂速度是路由計算的重要指標。EIGRP協議由于使用了DUAL算法,使得EIGRP協議在路由計算中不可能有環路路由產生,同時路由計…

組合問題(多條件)

39. 組合總和 - 力扣&#xff08;LeetCode&#xff09; class Solution { private:vector<vector<int>>result;vector<int>path;void backtracking(vector<int>& candidates, int target,int sum,int startIndex){if(sum>target){return;}if(…

SimScape物理建模實例2--帶控制的單質量彈簧阻尼系統

模型下載&#xff1a; 基于simscape&#xff0c;單質量系統帶位置控制資源-CSDN文庫 在實例1中&#xff0c;我們搭建了不帶控制的單質量彈簧阻尼系統&#xff0c;該系統沒有外界力量介入&#xff0c;只有彈簧的初始彈力&#xff0c;帶著彈簧使勁彈來彈去。 SimScape物理建模實…

OpenAI Text 模型與 Chat 模型調用實戰指南:從基礎配置到創意花店命名

在 AI 應用開發的浪潮中&#xff0c;OpenAI 的大語言模型成為開發者實現創新功能的得力工具。其中&#xff0c;Text 模型和 Chat 模型作為核心接口&#xff0c;被廣泛應用于文本生成、對話交互等場景。本文將以 “為花店起名” 為實際需求&#xff0c;手把手教你如何安全調用這…

網頁常見水印實現方式

文章目錄 1 明水印技術實現1.1 DOM覆蓋方案1.2 Canvas動態渲染1.3 CSS偽元素方案2 暗水印技術解析2.1 空域LSB算法2.2 頻域傅里葉變換3 防篡改機制設計3.1 MutationObserver防護3.2 Canvas指紋追蹤4 前后端實現對比5 攻防博弈深度分析5.1 常見破解手段5.2 進階防御策略6 選型近…

現代化QML組件開發教程

現代化QML組件開發教程 目錄 QML基礎介紹QML項目結構基本組件詳解自定義組件開發狀態與過渡高級主題最佳實踐 QML基礎介紹 什么是QML QML (Qt Meta Language) 是一種聲明式語言&#xff0c;專為用戶界面設計而創建。它是Qt框架的一部分&#xff0c;讓開發者能夠創建流暢、…

C/C++ 程序執行的主要過程

預處理&#xff08;Preprocessing&#xff09; 任務&#xff1a; 處理源代碼中以 # 開頭的預處理指令&#xff0c;包括&#xff1a; 頭文件包含&#xff08;#include&#xff09;&#xff1a;將頭文件&#xff08;如 stdio.h&#xff09;的內容直接插入到源文件中。宏替換&…

時間序列預測建模的完整流程以及數據分析【學習記錄】

文章目錄 1.時間序列建模的完整流程2. 模型選取的和數據集2.1.ARIMA模型2.2.數據集介紹 3.時間序列建模3.1.數據獲取3.2.處理數據中的異常值3.2.1.Nan值3.2.2.異常值的檢測和處理&#xff08;Z-Score方法&#xff09; 3.3.離散度3.4.Z-Score3.4.1.概述3.4.2.公式3.4.3.Z-Score與…

ValueError: Caught ValueError in DataLoader worker process 0.

參考鏈接&#xff1a; https://stackoverflow.com/questions/1841565/valueerror-invalid-literal-for-int-with-base-10 它提示我有個地方值錯誤空字符 果然因為格式處理沒有傳進去東西&#xff0c;找下原因&#xff0c;讓它正常處理 原來是相對路徑的.影響了程序運行 將v…

JavaScript性能優化實戰,從理論到落地的全面指南

在前端開發領域&#xff0c;JavaScript的性能優化是提升用戶體驗的核心環節。隨著Web應用復雜度的提升&#xff0c;開發者面臨的性能瓶頸也日益多樣化。本文將從理論分析、代碼實踐和工具使用三個維度&#xff0c;系統性地講解JavaScript性能優化的實戰技巧&#xff0c;并通過大…

SQL、Oracle 和 SQL Server 的比較與分析

SQL、Oracle 和 SQL Server 的比較與分析 一、基礎概念 1. SQL (Structured Query Language) 定義&#xff1a;結構化查詢語言&#xff0c;用于管理關系型數據庫的標準語言類型&#xff1a; DDL (數據定義語言)&#xff1a;CREATE, ALTER, DROPDML (數據操作語言)&#xff1…

Telnet 類圖解析

Telnet 類圖&#xff08;文本描述&#xff09; --------------------------------------- | Telnet | --------------------------------------- | - host: str | # 目標主機 | - port: int …

Ansible安裝與核心模塊實戰指南

Ansible安裝與核心模塊實戰指南 自動化運維入門:從安裝到模塊化任務配置 Ansible作為一款無代理自動化工具,通過模塊化設計實現高效管理,尤其適用于快速部署、配置和維護大規模系統。本文將從安裝、核心模塊使用到實際案例,全面解析其核心功能與最佳實踐。 一、Ansible安裝…

VLLM推理大模型顯存不夠后,導致程序引擎崩潰的調優方案嘗試

背景介紹 硬件 A800 80G模型 chat-glm4-9b-128K環境 生產正常顯存占用情況 glm4 占用32GB 其他顯存工占用38GB左右 總共剩余10GB。 問題描述 推理時報錯日志&#xff0c;由于內網環境無法拿出日志&#xff0c;與下面的類似。 File "/data/miniconda3_new/envs/vllm-new…

【Nacos】env NACOS_AUTH_IDENTITY_KEY must be set.

【Nacos】env NACOS_AUTH_IDENTITY_KEY must be set. 問題描述 env NACOS_AUTH_IDENTITY_KEY must be set.原因分析 在 .env 文件中設置 Nacos 身份驗證相關的所有必要環境變量。 解決方案 添加到 .env 文件中 NACOS_AUTH_IDENTITY_KEYAuthorization NACOS_AUTH_IDENTITY…

C++語法基礎(下)

&#xff08;注&#xff1a;在看本文是如果感覺內容有點突兀&#xff0c;請先瀏覽《C語法基礎&#xff08;上&#xff09;》這篇文章幫助更好理解&#xff09; 一.缺省參數 缺省參數是聲明或定義函數時為函數的參數指定一個缺省值。在調用該函數時&#xff0c;如果沒有指定實參…

力扣Hot100(Java版本)

1. 哈希 1.1 兩數之和 題目描述&#xff1a; 給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案&#xff0c;并且你不能使用兩次相同…

FCB文件疑問+求助:01 百度網盤視頻自動生成AI筆記pdf會出現對應fcb文件-作用待詳解

疑問求助&#xff1a;01 百度網盤視頻自動生成AI筆記pdf會出現對應fcb文件-作用待確認確認詳解.md 一、疑惑起因 百度網盤視頻自動生成AI筆記pdf會出現對應fcb文件&#xff0c;我可以刪除fcb文件么&#xff1f;影響什么&#xff1f;如何打開fcb其內容是啥&#xff1f;直觀看刪…

【數據結構】——棧和隊列OJ

一、有效的括號 題目鏈接&#xff1a; 20. 有效的括號 - 力扣&#xff08;LeetCode&#xff09; 題目的要求很簡單&#xff0c;就是要求我們判斷其輸入的括號字符串是否是有效的括號&#xff0c;那么我們要如何判斷呢&#xff1f; 我們可以這樣&#xff0c;我們遍歷出傳入的…